2016-03-22 23 views
2

Some String, yani bana isteğe bağlı bir dizi döndüren bir kütüphanem var.Ocaml Opsiyonu

Bunun anlamı nedir - Boş olmayan bir dize aldım? Ya da boş bir dize aldım? Genelde, kim bir tür için Some semantiklerini belirliyor? Dil, temel türleri için belirtiyor mu?

Teşekkürler!

+1

Bir örnek, bölümü gerçekleştiren ve sonucu dizeye geri veren '' div_string: int -> int -> dize seçeneği '' olabilir. Eğer ikinci argüman '' '' ise, fonksiyon '' string opsiyon'' türünde '' None'' itebilir. Bu sonuç geçersiz bir işlemin yapıldığını gösterir. – objmagic

+0

Bu türün tanımı: 'type 'a option = None | Bazıları 'a'. –

cevap

3

Not: Some xdeğeri, bir tür değil. Kitaplık tarafından döndürülen tür, string option olacaktır. Değerin her zaman Some x gibi göründüğünü biliyorsanız, bu başka bir soru. Ancak kütüphane yazarı bunun için sadece string türünü kullanabileceğinden, oldukça olası değildir. Özel olarak bir seçenek türü kullanın, böylece bir değerin yokluğunu temsil etmek için None'u kullanabilirsiniz.

'a option türünün her tür için 'a aynı semantiklere sahip olduğunu söyleyebilirim. 'a option tipi, mevcut veya bulunmayan türün değerini temsil eder. Değer varsa, Some x formunu alır, burada x türü bir değerdir. Değer mevcut değilse, None formunu alır.

tip string option değeri None olabilir, ya da Some "" olabilir, ya da herhangi bir dize "xxx" için Some "xxx" olabilir. Özel bir dizeye özgü anlam yok.