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ı | intfloatstring |
| toplama türü (sınıf, yapı, union, kayıt, enum ve diğer) | tür-adı | System.DateTimeColor |
| 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 listlist<'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 optionstring listint refoption<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> |
İlgili Konular
| 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. |