Typy F#
Toto téma popisuje typy, které jsou používány v F# a jak byly pojmenovány a popsané typy F#.
Souhrn typů F#
Některé typy jsou považovány za primitivní typy, jako je například typ Boolean bool a tvoří nedílnou a plovoucí bod typů různých velikostí, které zahrnují typy znaků a bajtů.Tyto typy jsou popsány v Primitivní typy (F#).
Jiné typy, které jsou integrovány do jazyka patří n-tic, seznamy, pole a sekvencí, záznamy a discriminated unií.Pokud máte zkušenosti s jinými.NET jazyků a jsou učení F# byste si měli přečíst témata pro každý z těchto typů.Další informace o těchto typech jsou součástí Příbuzná témata části tohoto tématu.Tyto F#-specifické typy podporují styly programování, které jsou společné pro funkční programovací jazyky.Mnoho z těchto typů mají přidružené moduly knihovny F#, které podporují běžné operace na tyto typy.
Typ funkce obsahuje informace o typy parametrů a vracet typ.
.NET Framework Je zdrojem typy objektů, typy rozhraní, typů delegátů a ostatní.Můžete definovat vlastní typy objektů, stejně jako v jakékoli jiné.NET jazyk.
F# kód můžete také definovat aliasů, které jsou pojmenovány typ zkratky, který jsou alternativní názvy typů.Typ zkratky můžete použít při může v budoucnu změnit typ a chcete se vyhnout změně kódu, který závisí na typu.Nebo můžete použít zkratku typ jako popisný název pro typ, který můžete usnadnit kód číst a porozumět.
F# poskytuje užitečné kolekce typů, které jsou navrženy s funkční programování v úvahu.Pomocí těchto typů kolekce umožňuje napsat kód, který je ve stylu více funkcí.Další informace naleznete v tématu Typy kolekcí F#.
Syntaxe pro typy
V F# kódu často musíte zapsat názvy typů.Každý typ má syntaktické formuláře a použít tyto syntaktické formuláře anotace type, abstraktní metoda prohlášení, Deklarace delegátů, podpisy a ostatní konstrukce.Kdykoli prohlásit nový program konstruktu v interpretem interpretem vytiskne název konstruktu a syntaxi pro jeho typu.Tato syntaxe může být pouze identifikátor pro typ definovaný uživatelem nebo předdefinovaný identifikátor například pro int nebo string, ale pro složitější typy syntaxe je složitější.
Následující tabulka obsahuje aspekty typ syntaxe pro typy F#.
Type |
Syntaxi typu |
Příklady |
---|---|---|
Základní typ |
type-name |
int float string |
agregační typ (třída, struktura, unie, záznam, výčet a podobně) |
type-name |
System.DateTime Color |
Zadejte zkratku. |
type-abbreviation-name |
bigint |
Úplný typu |
namespaces.type-name nebo modules.type-name nebo namespaces.modules.type-name |
System.IO.StreamWriter |
matice |
type-name[] nebo type-namematice |
int[] array<int> int array |
dvojrozměrné |
type-name[,] |
int[,] float[,] |
trojrozměrné |
type-name[,,] |
float[,,] |
n-tice. |
type-name1 * type-name2 ... |
Například (1,'b',3) typint * char * int |
obecný typ |
type-parametergeneric-type-name nebo generic-type-name<type-parameter-list> |
'a list list<'a> Dictionary<'key, 'value> |
vyrobeno typu (obecný typ, který má určitý typ argumentu dodávané) |
type-argumentgeneric-type-name nebo generic-type-name<type-argument-list> |
int option string list int ref option<int> list<string> ref<int> Dictionary<int, string> |
typ funkce, která má jeden parametr. |
parameter-type1-> return-type |
Funkce, která trvá int a vrátí string typint -> string |
typ funkce, která má více parametrů |
parameter-type1-> parameter-type2-> ...-> return-type |
Funkce, která trvá int a float a vrátí string typint -> float -> string |
vyšší pořadí funkci jako parametr |
(function-type) |
List.mapTyp('a -> 'b) -> 'a list -> 'b list |
Delegát |
Delegátfunction-type |
delegate of unit -> int |
flexibilní typu |
#type-name |
#System.Windows.Forms.Control #seq<int> |
Příbuzná témata
Téma |
Description |
---|---|
Popisuje předdefinované typy jednoduché jako integrální typy, typu Boolean a typy znaků. |
|
Popisuje unit typu, typ, který má jednu hodnotu a je označen (); equivalent to void in C# and Nothing in Visual Basic. |
|
Popisuje typ n-tice, typ, který se skládá z přidružené hodnoty typu zařazena do dvojice, triples, quadruples a tak dále. |
|
Popisuje typ možnosti typ, který může mít hodnotu nebo prázdný. |
|
Popisuje seznamy, které jsou objednané, neměnná řadu prvků stejného typu. |
|
Popisuje pole, které jsou objednány sad proměnlivých prvků stejného typu, které zaujímají souvislý blok paměti a mají pevnou velikost. |
|
Popisuje typ posloupnosti, který představuje logické řady hodnot; jednotlivé hodnoty jsou vypočítány podle potřeby. |
|
Popisuje typ záznamu malého úhrn pojmenované hodnoty. |
|
Popisuje discriminated unie typ typu, jehož hodnoty mohou být některou sadu možných typů. |
|
Popisuje funkce hodnoty. |
|
Popisuje typ třídy typu objektu, který odpovídá.Typ odkazu NET.Typy tříd mohou obsahovat základní typ členy, vlastnosti a implementovaná rozhraní. |
|
Popisuje struct typu, typ objektu, který odpovídá.ČISTÁ hodnota typu.struct Typu obvykle představuje malé souhrnných údajů. |
|
Popisuje typy rozhraní, které jsou typy, které představují sadu členů, které poskytují určité funkce, ale která neobsahují žádná data.Typ rozhraní musí provádí užitečné typ objektu. |
|
Popisuje typ delegáta, který představuje funkce jako objekt. |
|
Popisuje typy výčet, jehož hodnoty patří do sady pojmenovaných hodnot. |
|
Popisuje atributy, které slouží k zadání metadat pro jiného typu. |
|
Popisuje výjimky, které určují informace o chybě. |