ocaml中的选项字符串

时间:2016-03-22 04:25:07

标签: ocaml optional

我有一个库,它会向我返回一个Some String,即一个可选的字符串。

这是什么意思 - 我收到了非空字符串?或者我收到了一个可以为空的字符串?一般来说,谁来确定某个类型Some的语义?语言是否为基类型指定了它?

谢谢!

1 个答案:

答案 0 :(得分:3)

请注意,Some x,而不是类型。库返回的类型为string option。如果您碰巧知道该值总是看起来像Some x,那就是另一个问题。但它也不太可能,因为图书馆作者可以使用类型string。您专门使用选项类型,因此您可以使用None来表示缺少值。

我认为类型'a option对于每种类型'a都具有相同的语义。类型'a option表示可以存在与否的类型的值。如果该值存在,则采用Some x形式,其中x是该类型的值。如果该值不存在,则采用None形式。

string option类型的值可以是None,也可以是Some "",也可以是Some "xxx"任何字符串"xxx"。没有特殊的字符串特定含义。