F# Türleri

Bu konuda, F# içinde kullanılan türler ve F# türlerinin nasıl adlandırılmış ve açıklanmıştır?

F# Türlerinin Özeti

Bazı türler, Boole türü ve bayt ve karakter türlerini içeren çeşitli boyutlardaki tamsayı ve kayan nokta türleri gibi temel bool türler olarak kabul edilir. Bu türler İlkel Türler altında açıklanmıştır.

Dil içinde yerleşik olarak yer alan diğer türler arasında;uples, listeler, diziler, diziler, kayıtlar ve ayrımlı birleştiriciler yer almaktadır. Diğer .NET dilleriyle ilgili deneyimiz varsa ve F# dilini öğreniyorsanız, bu türlerden her biri için konuları okuyabilirsiniz. F# diline özgü bu türler, işlevsel programlama dillerinde ortak olan programlama stillerini destekler. Bu türlerin çoğu F# kitaplığında bu türler üzerinde yaygın işlemleri destekleyen ilişkili modüllere sahip olur.

İşlevin türü, parametre türleri ve dönüş türü hakkında bilgi içerir.

Bu .NET Framework nesne türlerinin, arabirim türlerinin, temsilci türlerinin ve diğer türlerin kaynağıdır. Kendi nesne türlerinizi diğer herhangi bir .NET dilinde olduğu gibi tanımlayabilirsiniz.

Ayrıca F# kodu, türlerin alternatif adları olan tür kısaltmaları olarak adlandırılmış diğer adları tanımlayabilir. Türün gelecekte değişenin ve türüne bağlı kodu değiştirmekten kaçınmak istediğiniz tür kısaltmalarını kullanabilirsiniz. Veya bir tür için kolay ad olarak bir tür kısaltması kullanabilirsiniz ve bu da kodun okunmasını ve anlanmasını kolaylaştırabilir.

F# işlevsel programlama ile tasarlanmış kullanışlı koleksiyon türleri sağlar. Bu koleksiyon türlerini kullanmak, stilde daha işlevsel kod yazmanıza yardımcı olur. Daha fazla bilgi için bkz. F# Koleksiyon Türleri.

Türler için Söz Dizimi

F# kodunda genellikle türlerin adlarını yazmanız gerekir. Her türün bir sözdizmi biçimi vardır ve bu sözdizmi formları tür ek açıklamalarında, soyut yöntem bildirimlerde, temsilci bildirimlerinde, imzalarda ve diğer yapılarda kullanırsınız. Yorumlayıcıda yeni bir program yapısı bildirilen her zaman, yorumlayıcı yapının adını ve türü için söz dizimi yazdırır. Bu söz dizimi yalnızca kullanıcı tanımlı bir türün tanımlayıcısı veya veya gibi yerleşik bir tanımlayıcı olabilir, ancak daha karmaşık türler için söz int string dizimi daha karmaşıktır.

Aşağıdaki tabloda F# türleri için tür söz dizimlerinin yönleri yer alır.

Tür Tür söz dizimi Örnekler
ilkel tür tür-adı int

float

string
toplama türü (sınıf, yapı, union, kayıt, enum ve diğer) tür-adı System.DateTime

Color
tür kısaltması type-abbreviation-name bigint
tam tür namespaces.type-name

veya

modules.type-name

veya

namespaces.modules.type-name
System.IO.StreamWriter
array type-name[] veya

tür-adı dizisi
int[]

array<int>

int array
iki boyutlu dizi type-name[,] int[,]

float[,]
üç boyutlu dizi type-name[,,] float[,,]
tuple type-name1 *-adı2... Örneğin, (1,'b',3) türü int * char * int
genel tür tür-parametresi genel-tür-adı

veya

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

list<'a>

Dictionary<'key, 'value>
oluşturulmuş tür (belirli bir tür bağımsız değişkeni sağlanan genel bir tür) tür-bağımsız değişkeni genel-tür-adı

veya

generic-type-name < type-argument-list>
int option

string list

int ref

option<int>

list<string>

ref<int>

Dictionary<int, string>
tek bir parametreye sahip işlev türü parameter-type1 - > return-type bir alan ve türü int olan bir string döndüren işlev int -> string
birden çok parametreye sahip işlev türü parameter-type1 - > parameter-type2 - > ... - > dönüş türü ve alan ve int türü olan bir float işlev string``int -> float -> string
parametre olarak higher order işlevi (işlev türü) List.map has type ('a -> 'b) -> 'a list -> 'b list
temsilci işlev türü temsilcisi delegate of unit -> int
esnek tür #tür-adı #System.Windows.Forms.Control

#seq<int>
Konu Description
İlkel Türler Integral türleri, Boole türü ve karakter türleri gibi yerleşik basit türleri açıklar.
Birim Türü Türü, bir değere sahip olan ve C# ile eşdeğer olan (); ile belirtilen bir tür olan ve unit void Nothing Visual Basic.
Demetler Çiftler, üçlüler, dörtler ve diğer türler halinde gruplanacak herhangi bir türün ilişkili değerlerinden oluşan bir tür olan tuple türünü açıklar.
Seçenekler Bir değere sahip veya boş bir tür olan seçenek türünü açıklar.
Listeler Aynı türe sahip sıralanabilir, sabit öğe dizisi olan listeleri açıklar.
Diziler Bitişik bir bellek bloğu kaplayan ve sabit boyutta olan aynı türe sahip tarifeli öğe kümeleri olan dizileri açıklar.
Diziler Mantıksal bir değer serisini temsil eden dizi türünü açıklar; tek tek değerler yalnızca gerektiğinde hesaplanır.
Kayıtlar Adlandırılmış değerlerin küçük bir toplaması olan kayıt türünü açıklar.
Ayrılmış Birleşimler Değerleri olası türlerden herhangi biri olan ayrımlı bir union türünü açıklar.
İşlevler İşlev değerlerini açıklar.
Sınıflar Bir .NET başvuru türüne karşılık gelen bir nesne türü olan sınıf türünü açıklar. Sınıf türleri üyeleri, özellikleri, uygulanan arabirimleri ve bir temel türü içerebilir.
Yapılar structBir .NET değer türüne karşılık gelen nesne türü olan türünü açıklar. Tür struct genellikle küçük bir veri toplamayı temsil eder.
Arabirimler Belirli işlevleri sağlayan ancak veri içermeen üye kümelerini temsil eden türler olan arabirim türlerini açıklar. Arabirim türünün yararlı olması için bir nesne türü tarafından uygulanması gerekir.
Temsilciler Bir işlevi nesne olarak temsil eden temsilci türünü açıklar.
Listelemeler Değerleri adlandırılmış değerler kümesine ait olan numaralama türlerini açıklar.
Öznitelikler Başka bir tür için meta verileri belirtmek için kullanılan öznitelikleri açıklar.
Özel Durum Türleri Hata bilgilerini belirten özel durumları açıklar.