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 string
gibi 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 string int -> 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> |
İlgili Konular'a
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. |