Ekinlikler
17 Mar 23 - 21 Mar 23
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Bu konuda F# derleyicisinin değer, değişken, parametre ve dönüş değeri türlerini nasıl çıkardığı açıklanmaktadır.
Tür çıkarımı fikri, derleyicinin türü kesin olarak çıkaramadığı durumlar dışında F# yapılarının türlerini belirtmeniz gerekmemesidir. Açık tür bilgilerinin atlanması, F# dilinin dinamik olarak yazılan bir dil olduğu veya F# dilindeki değerlerin zayıf yazıldığı anlamına gelmez. F# statik olarak yazılan bir dildir; bu da derleyicinin derleme sırasında her yapı için tam bir tür çıkardığı anlamına gelir. Derleyicinin her bir yapı türünü vermesi için yeterli bilgi yoksa, genellikle kodun herhangi bir yerine açık tür ek açıklamaları ekleyerek ek tür bilgileri sağlamanız gerekir.
Parametre listesinde, her parametrenin türünü belirtmeniz gerekmez. Ancak, F# statik olarak yazılan bir dildir ve bu nedenle her değer ve ifade derleme zamanında kesin bir türe sahiptir. Açıkça belirtmediğiniz türler için derleyici, türü bağlama göre çıkarsar. Tür başka bir şekilde belirtilmezse, genel olarak çıkarılır. Kod tutarsız bir değer kullanıyorsa, bir değerin tüm kullanımlarını karşılayan tek bir çıkarım türü olmayacak şekilde derleyici bir hata bildirir.
bir işlevin dönüş türü, işlevdeki son ifadenin türüne göre belirlenir.
Örneğin, aşağıdaki kodda parametre türleri a
ve b
dönüş türü, değişmez değeri 100
türünde int
olduğundan çıkarılırint
.
let f a b = a + b + 100
Değişmez değerleri değiştirerek tür çıkarımını etkileyebilirsiniz. son ekini 100
u
ekleyerek a uint32
yaparsanız, , b
ve dönüş değeri türleri a
olarak çıkarılıruint32
.
Yalnızca belirli bir türle çalışan işlevler ve yöntemler gibi tür üzerindeki kısıtlamaları ima eden diğer yapıları kullanarak da tür çıkarımını etkileyebilirsiniz.
Ayrıca, aşağıdaki örneklerde gösterildiği gibi işlev veya yöntem parametrelerine veya ifadelerdeki değişkenlere açık tür ek açıklamaları uygulayabilirsiniz. Hatalar, farklı kısıtlamalar arasında çakışmalar oluşursa ortaya çıkar.
// Type annotations on a parameter.
let addu1 (x : uint32) y =
x + y
// Type annotations on an expression.
let addu2 x y =
(x : uint32) + y
Ayrıca, tüm parametrelerden sonra bir tür ek açıklaması sağlayarak bir işlevin dönüş değerini açıkça belirtebilirsiniz.
let addu1 x y : uint32 =
x + y
Bir tür ek açıklamasının parametre üzerinde yararlı olduğu yaygın bir durum, parametrenin bir nesne türü olması ve üye kullanmak istemenizdir.
let replace(str: string) =
str.Replace("A", "a")
İşlev kodu bir parametrenin türüne bağımlı değilse, derleyici parametreyi genel olarak değerlendirir. Buna otomatik genelleştirme adı verilir ve karmaşıklığı artırmadan genel kod yazmanın güçlü bir yardımı olabilir.
Örneğin, aşağıdaki işlev herhangi bir türdeki iki parametreyi bir tanımlama grubu halinde birleştirir.
let makeTuple a b = (a, b)
Türün çıkarılacağı
'a -> 'b -> 'a * 'b
Tür çıkarımı, F# Dil Belirtimi'nde daha ayrıntılı olarak açıklanmıştır.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Ekinlikler
17 Mar 23 - 21 Mar 23
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Hemen kaydolun