Birim Türü
Tür unit
, belirli bir değerin yokluğunu gösteren bir türdür; unit
türün yalnızca tek bir değeri vardır ve başka bir değer olmadığında veya gerekli olmadığında yer tutucu işlevi görür.
Sözdizimi
// The value of the unit type.
()
Açıklamalar
Her F# ifadesi bir değer olarak değerlendirilmelidir. İlgi çekici bir değer oluşturmayan ifadeler için tür unit
değeri kullanılır. Tür, unit
C# ve C++ gibi dillerdeki türe benzer void
.
Türün unit
tek bir değeri vardır ve bu değer belirteci ()
ile gösterilir.
Türün unit
değeri genellikle F# programlamasında dil söz diziminde bir değerin gerekli olduğu yeri tutmak için kullanılır, ancak değer gerekli olmadığında veya istendiğinde. Bir işlevin dönüş değeri printf
örnek olabilir. İşlemin önemli eylemleri printf
işlevde gerçekleştiğinden, işlevin gerçek bir değer döndürmesi gerekmez. Bu nedenle, dönüş değeri türündedir unit
.
Bazı yapılar bir unit
değer bekler. Örneğin, bir do
bağlamanın veya modülün en üst düzeyindeki herhangi bir kodun bir unit
değer olarak değerlendirmesi beklenir. Derleyici, bir modülün en üst düzeyindeki bir do
bağlama veya kod, aşağıdaki örnekte gösterildiği gibi kullanılmayan değer dışında unit
bir sonuç ürettiğinde bir uyarı bildirir.
let function1 x y = x + y
// The next line results in a compiler warning.
function1 10 20
// Changing the code to one of the following eliminates the warning.
// Use this when you do want the return value.
let result = function1 10 20
// Use this if you are only calling the function for its side effects,
// and do not want the return value.
function1 10 20 |> ignore
Bu uyarı, işlevsel programlamanın bir özelliğidir; diğer .NET programlama dillerinde görünmez. İşlevlerin herhangi bir yan etkisi olmayan tamamen işlevsel bir programda, son dönüş değeri işlev çağrısının tek sonucudur. Bu nedenle, sonuç yoksayıldığında olası bir programlama hatasıdır. F# tamamen işlevsel bir programlama dili olmasa da, mümkün olduğunca işlevsel programlama stilini izlemek iyi bir uygulamadır.