Typy F#

Toto téma popisuje typy, které se používají v jazyce F# a jak jsou typy jazyka F# pojmenované a popsané.

Souhrn typů jazyka F#

Některé typy jsou považovány za primitivní typy, jako je logický typ bool a celočíselný typ a typy s plovoucí desetinou čárkou různých velikostí, které zahrnují typy bajtů a znaků. Tyto typy jsou popsány v primitivních typech.

Mezi další typy, které jsou součástí jazyka, patří řazené kolekce členů, seznamy, pole, sekvence, záznamy a diskriminované sjednocení. Pokud máte zkušenosti s jinými jazyky .NET a učíte se jazyk F#, měli byste si přečíst témata pro každý z těchto typů. Tyto typy specifické pro jazyk F#podporují styly programování, které jsou společné pro funkční programovací jazyky. Mnoho z těchto typů má přidružené moduly v knihovně jazyka F#, které podporují běžné operace s těmito typy.

Typ funkce obsahuje informace o typech parametrů a návratovém typu.

Rozhraní .NET Framework je zdrojem typů objektů, typů rozhraní, typů delegátů a dalších. Vlastní typy objektů můžete definovat stejně jako v jakémkoli jiném jazyce .NET.

Kód F# může také definovat aliasy, které jsou pojmenované zkratky typů, což jsou alternativní názvy pro typy. Zkratky typů můžete použít, když se typ může v budoucnu změnit a chcete se vyhnout změně kódu, který závisí na typu. Nebo můžete použít zkratku typu jako popisný název pro typ, který usnadňuje čtení a pochopení kódu.

Jazyk F# poskytuje užitečné typy kolekcí navržené s ohledem na funkční programování. Použití těchto typů kolekcí vám pomůže psát kód, který je více funkční ve stylu. Další informace naleznete v tématu Typy kolekcí jazyka F#.

Syntaxe pro typy

V kódu jazyka F# často musíte zapsat názvy typů. Každý typ má syntaktickou formu a tyto syntaktické formuláře použijete v poznámkách k typu, deklarací abstraktní metody, delegování deklarací, podpisů a dalších konstruktorů. Pokaždé, když v interpretu deklarujete nový konstruktor programu, interpret vytiskne název konstruktoru a syntaxi pro jeho typ. Tato syntaxe může být pouze identifikátor uživatelem definovaného typu nebo předdefinovaný identifikátor, například pro int nebo string, ale u složitějších typů je syntaxe složitější.

Následující tabulka ukazuje aspekty syntaxe typu pro typy F#.

Typ Syntaxe typu Příklady
primitivní typ název typu int

float

string
agregační typ (třída, struktura, sjednocení, záznam, výčet atd.) název typu System.DateTime

Color
zkratka typu type-abbreviation-name bigint
plně kvalifikovaný typ namespaces.type-name

nebo

modules.type-name

nebo

namespaces.modules.type-name
System.IO.StreamWriter
pole type-name[] nebo

Pole s názvem typu
int[]

array<int>

int array
dvojrozměrné pole type-name[,] int[,]

float[,]
Trojrozměrné pole type-name[,] float[,,]
tuple type-name1 * type-name2 ... Má například typ. (1,'b',3)int * char * int
obecný typ type-parametergeneric-type-name

nebo

generic-type-name<type-parameter-list>
'a list

list<'a>

Dictionary<'key, 'value>
konstruovaný typ (obecný typ se zadaným argumentem konkrétního typu) 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á přebírá a int vrací string typ int -> string
typ funkce, který má více parametrů parameter-type1 ->parameter-type2 -> ... ->return-type Funkce, která přebírá a intfloat vrací string typ int -> float -> string
vyšší funkce pořadí jako parametr (typ funkce) List.map má typ ('a -> 'b) -> 'a list -> 'b list
delegát delegát typu funkce delegate of unit -> int
flexibilní typ #název typu #System.Windows.Forms.Control

#seq<int>
Popis Popis
Primitivní typy Popisuje předdefinované jednoduché typy, jako jsou integrální typy, logický typ a typy znaků.
Typ jednotky Popisuje unit typ, typ, který má jednu hodnotu, která je označena (); ekvivalentní v void jazyce C# a Nothing v jazyce Visual Basic.
Řazené kolekce členů Popisuje typ řazené kolekce členů, typ, který se skládá z přidružených hodnot libovolného typu seskupených ve dvojicích, trojité, čtyřnásobné, čtyřnásobné atd.
Možnosti Popisuje typ možnosti, typ, který může mít hodnotu nebo být prázdný.
Seznamy Popisuje seznamy, které jsou uspořádané, neměnné řady prvků stejného typu.
Pole Popisuje pole, která jsou seřazené sady proměnlivých prvků stejného typu, které zabírají souvislý blok paměti a mají pevnou velikost.
Sekvence Popisuje typ sekvence, který představuje logickou řadu hodnot; jednotlivé hodnoty se počítají pouze podle potřeby.
Záznamy Popisuje typ záznamu, malou agregaci pojmenovaných hodnot.
Rozlišovaná sjednocení Popisuje diskriminovaný typ sjednocení, typ, jehož hodnoty mohou být libovolnou ze sady možných typů.
Functions Popisuje hodnoty funkcí.
Třídy Popisuje typ třídy, typ objektu, který odpovídá referenčnímu typu .NET. Typy tříd mohou obsahovat členy, vlastnosti, implementovaná rozhraní a základní typ.
Struktury Popisuje struct typ objektu, který odpovídá typu hodnoty .NET. Typ struct obvykle představuje malou agregaci dat.
Rozhraní Popisuje typy rozhraní, což jsou typy, které představují sadu členů, které poskytují určité funkce, ale neobsahují žádná data. Aby byl užitečný typ rozhraní, musí být implementován typem objektu.
Delegáti Popisuje typ delegáta, který představuje funkci jako objekt.
Výčty Popisuje typy výčtu, jejichž hodnoty patří do sady pojmenovaných hodnot.
Atributy Popisuje atributy, které slouží k určení metadat pro jiný typ.
Typy výjimek Popisuje výjimky, které určují informace o chybě.