Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a témakör az F#-ban használt típusokat, valamint az F#-típusok elnevezését és leírását ismerteti.
Az F#-típusok összegzése
Egyes típusokat primitív típusoknak tekintünk, például a logikai típustbool, valamint a különböző méretű integrál- és lebegőpontos típusokat, amelyek bájt- és karaktertípusokat is tartalmaznak. Ezeket a típusokat primitív típusok ismertetik.
A nyelvbe beépített egyéb típusok közé tartoznak a rekordok, listák, tömbök, szekvenciák, rekordok és diszkriminált egyesítések. Ha más .NET-nyelvekkel is rendelkezik tapasztalatokkal, és F#-et tanul, olvassa el az egyes típusokhoz tartozó témaköröket. Ezek az F#-specifikus típusok támogatják a funkcionális programozási nyelvekhez gyakran használt programozási stílusokat. Számos ilyen típushoz társított modulok tartoznak az F#-kódtárban, amelyek támogatják az ilyen típusok gyakori műveleteit.
A függvény típusa információkat tartalmaz a paramétertípusokról és a visszatérési típusról.
A .NET-keretrendszer az objektumtípusok, a felülettípusok, a delegálási típusok és mások forrása. Saját objektumtípusokat ugyanúgy definiálhat, mint bármely más .NET-nyelven.
Az F#-kód emellett definiálhat aliasokat is, amelyek névvel ellátott típus rövidítések, amelyek a típusok alternatív nevei. Akkor használhat típus rövidítéseket, ha a típus a jövőben változhat, és el szeretné kerülni a típustól függő kód módosítását. Vagy egy típus rövidítését is használhatja egy olyan típus rövidítéseként, amely megkönnyíti a kód olvasását és megértését.
Az F# hasznos gyűjteménytípusokat biztosít, amelyek funkcionális programozással vannak megtervezve. Ezekkel a gyűjteménytípusokkal stílusosabb kódot írhat. További információ: F# Gyűjteménytípusok.
Típusok szintaxisa
Az F#-kódban gyakran ki kell írnia a típusok nevét. Minden típus rendelkezik szintaktikai űrlappal, és ezeket a szintaktikai űrlapokat típusjegyzetekben, absztrakt metódusdelegációkban, delegált deklarációkban, aláírásokban és egyéb szerkezetekben használja. Amikor új programszerkezetet deklarál az értelmezőben, az értelmező kinyomtatja a szerkezet nevét és a típus szintaxisát. Ez a szintaxis lehet csak egy felhasználó által definiált típus vagy egy beépített azonosító azonosítója, például az vagy intstring, de összetettebb típusok esetén a szintaxis összetettebb.
Az alábbi táblázat az F#-típusok típusszintaxisának szempontjait mutatja be.
| Típus | Típus szintaxisa | Példák |
|---|---|---|
| primitív típus | típus-név | intfloatstring |
| összesítő típus (osztály, struktúra, egyesítés, rekord, szám stb.) | típus-név | System.DateTimeColor |
| típus rövidítése | type-abbreviation-name | bigint |
| teljes körűen minősített típus |
namespaces.type-name vagy modules.type-name vagy namespaces.modules.type-name |
System.IO.StreamWriter |
| tömb |
type-name[] vagy típus-név tömb |
int[]array<int>int array |
| kétdimenziós tömb | type-name[,] | int[,]float[,] |
| háromdimenziós tömb | type-name[,,] | float[,,] |
| rekord | type-name1 * type-name2 ... | Például (1,'b',3) van típus int * char * int |
| általános típus |
type-parametergeneric-type-name vagy generic-type-name<type-parameter-list> |
'a listlist<'a>Dictionary<'key, 'value> |
| konfigurált típus (olyan általános típus, amely adott típusargumentumot adott meg) |
type-argumentgeneric-type-name vagy generic-type-name<type-argument-list> |
int optionstring listint refoption<int>list<string>ref<int>Dictionary<int, string> |
| egyetlen paraméterrel rendelkező függvénytípus | parameter-type1 ->return-type | Olyan függvény, amely egy típust intstring vesz fel és ad vissza int -> string |
| több paramétert tartalmazó függvénytípus | parameter-type1 ->parameter-type2 -> ... ->return-type | Egy függvény, amely egy int és egy függvényt float vesz fel, és egy típust string ad vissza int -> float -> string |
| magasabbrendű függvény paraméterként | (függvénytípus) |
List.map típussal rendelkezik ('a -> 'b) -> 'a list -> 'b list |
| delegálás | függvénytípus delegálása | delegate of unit -> int |
| rugalmas típus | # típus-név | #System.Windows.Forms.Control#seq<int> |
Kapcsolódó témakörök
| Téma | Leírás |
|---|---|
| Primitív típusok | A beépített egyszerű típusokat, például az integráltípusokat, a logikai típusokat és a karaktertípusokat ismerteti. |
| Egység típusa |
unit A típust írja le, egy olyan típust, amely egy értékkel rendelkezik, és amelyet (); egyenértékű a void C#-ban és Nothing a Visual Basicben. |
| Csuples | A rekordtípust írja le, egy típust, amely párok, triplák, négyes és így tovább csoportosított típus társított értékeiből áll. |
| Beállítások | A beállítás típusát írja le, amely lehet érték vagy üres. |
| Küzdőtér | Olyan listákat ismertet, amelyek rendezett, nem módosítható elemsorozatok, amelyek mind azonos típusúak. |
| Tömbök | Olyan tömböket ismertet, amelyek azonos típusú, egybefüggő memóriablokkot elfoglaló, rögzített méretű mutable elemek rendezett készletei. |
| Szekvenciák | A szekvencia típusát írja le, amely egy logikai értéksorozatot jelöl; az egyes értékek kiszámítása csak szükség szerint történik. |
| Rekordok | A rekordtípust, a névvel ellátott értékek kis összesítését ismerteti. |
| Diszkriminált uniók | A diszkriminált egyesítő típust írja le, amely olyan típus, amelynek értékei a lehetséges típusok bármelyikét tartalmazhatják. |
| Functions | A függvényértékeket ismerteti. |
| Osztályok | Az osztálytípust ismerteti, amely egy .NET-referenciatípusnak megfelelő objektumtípus. Az osztálytípusok tartalmazhatnak tagokat, tulajdonságokat, implementált felületeket és egy alaptípust. |
| Szerkezetek | Ez a struct típus egy .NET-értéktípusnak megfelelő objektumtípus. A struct típus általában egy kis adatösszesítést jelöl. |
| Felületek | A felülettípusokat ismerteti, amelyek olyan tagokat jelölnek, amelyek bizonyos funkciókat biztosítanak, de nem tartalmaznak adatokat. A hasznosság érdekében az illesztőtípust objektumtípussal kell implementálnia. |
| Küldöttek | A delegálás típusát írja le, amely egy függvényt jelöl objektumként. |
| Számbavételek | Az enumerálási típusokat ismerteti, amelyek értékei nevesített értékek készletéhez tartoznak. |
| Attribútumok | Olyan attribútumokat ismertet, amelyek egy másik típus metaadatainak megadására szolgálnak. |
| Kivételtípusok | A hibainformációkat meghatározó kivételeket ismerteti. |