F# Türleri

Bu konuda, F# dilinde kullanılan türler ve F# türlerinin nasıl adlandırıldığı ve açıklandığı açıklanmaktadır.

F# Türlerinin Özeti

Bazı türler, Boole türü bool ve bayt ve karakter türlerini içeren çeşitli boyutlardaki tam sayı ve kayan nokta türleri gibi temel türler olarak kabul edilir. Bu türler Temel Türler'de açıklanmıştır.

Dilde yerleşik olarak bulunan diğer türler demetler, listeler, diziler, diziler, kayıtlar ve ayrımcı birleşimlerdir. Diğer .NET dilleriyle ilgili deneyiminiz varsa ve F# öğreniyorsanız, bu türlerin her biri için konuları okumalısınız. F#'ye özgü bu türler, işlevsel programlama dillerinde ortak olan programlama stillerini destekler. Bu türlerin birçoğu, F# kitaplığında bu türlerdeki yaygın işlemleri destekleyen ilişkili modüllere sahiptir.

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

.NET Framework nesne türlerinin, arabirim türlerinin, temsilci türlerinin ve diğerlerinin kaynağıdır. Kendi nesne türlerinizi, diğer herhangi bir .NET dilinde yaptığınız gibi tanımlayabilirsiniz.

Ayrıca F# kodu, tür kısaltmaları olarak adlandırılan ve türler için alternatif adlar olan diğer adları tanımlayabilir. Tür gelecekte değişebileceğinden ve türüne bağlı kodu değiştirmekten kaçınmak istediğinizde tür kısaltmaları kullanabilirsiniz. Alternatif olarak, kodun okunmasını ve anlaşılmasını kolaylaştırabilecek bir tür için kolay ad olarak bir tür kısaltması kullanabilirsiniz.

F# işlevsel programlama göz önünde bulundurularak tasarlanmış kullanışlı koleksiyon türleri sağlar. Bu koleksiyon türlerini kullanmak, stilde daha işlevsel bir 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 söz dizimsel bir biçimi vardır ve bu söz dizimsel formları tür ek açıklamalarında, soyut yöntem bildirimlerinde, temsilci bildirimlerinde, imzalarda ve diğer yapılarda kullanırsınız. Yorumlayıcıda yeni bir program yapısı bildirdiğinizde, yorumlayıcı yapısının adını ve türünün söz dizimini yazdırır. Bu söz dizimi yalnızca kullanıcı tanımlı bir türün tanımlayıcısı veya veya stringgibi int yerleşik bir tanımlayıcı olabilir, ancak daha karmaşık türler için söz dizimi daha karmaşıktır.

Aşağıdaki tabloda, F# türleri için tür söz diziminin yönleri gösterilmektedir.

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

float

string
toplama türü (sınıf, yapı, birleşim, kayıt, numaralandırma vb.) 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
dizi type-name[] veya

type-name dizisi
int[]

array<int>

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

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

veya

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

list<'a>

Dictionary<'key, 'value>
yapılı tür (belirli bir tür bağımsız değişkeni sağlanan genel bir tür) type-argument generic-type-name

veya

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

string list

int ref

option<int>

list<string>

ref<int>

Dictionary<int, string>
tek parametreli işlev türü parameter-type1 ->return-type bir alan int ve bir türü döndüren bir string işlev int -> string
birden çok parametresi olan işlev türü parameter-type1 ->parameter-type2 -> ... ->return-type ve alan int ve float türünde bir döndüren işlev stringint -> float -> string
parametre olarak higher order işlevi (işlev türü) List.map türü var ('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>
Başlık Açıklama
İlkel Türler Integral türleri, Boole türü ve karakter türleri gibi yerleşik basit türleri açıklar.
Birim Türü unit Türü, bir değeri olan ve () ile belirtilen türü, C# ve Nothing Visual Basic ile eşdeğerdirvoid.
Demetler Tanımlama grubu türünü, çiftler, üçlüler, dörtlüler vb. gruplandırılmış herhangi bir türün ilişkili değerlerinden oluşan bir tür olarak açıklar.
Seçenekler Değere sahip olabilecek veya boş olabilecek bir tür olan seçenek türünü açıklar.
Listeler Aynı türdeki sıralı, sabit öğe serileri olan listeleri açıklar.
Diziler Bitişik bir bellek bloğunu kaplayan ve sabit boyutlu olan aynı türdeki sıralı değiştirilebilir öğe kümeleri olan dizileri açıklar.
Sıralar Mantıksal bir değer serisini temsil eden sıra türünü açıklar; tek tek değerler yalnızca gerektiği şekilde hesaplanır.
Records Adlandırılmış değerlerin küçük bir toplamı olan kayıt türünü açıklar.
Ayrılmış Birleşimler Değerleri bir dizi olası türden biri olabilen bir tür olan ayrımcı birleşim türünü açıklar.
İşlevler İşlev değerlerini açıklar.
Sınıflar .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 .NET değer türüne struct karşılık gelen nesne türü olan türünü açıklar. Türü struct genellikle küçük bir veri toplamını temsil eder.
Arabirimler Belirli işlevleri sağlayan ancak veri içermeyen bir üye kümesini temsil eden türler olan arabirim türlerini açıklar. Kullanışlı olması için bir arabirim türünün bir nesne türü tarafından uygulanması gerekir.
Temsilciler Bir işlevi nesne olarak temsil eden temsilci türünü açıklar.
Sabit Listeleri Değerleri adlandırılmış değerler kümesine ait olan numaralandırma 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.