我有一个库,它会向我返回一个Some String
,即一个可选的字符串。
这是什么意思 - 我收到了非空字符串?或者我收到了一个可以为空的字符串?一般来说,谁来确定某个类型Some
的语义?语言是否为基类型指定了它?
谢谢!
答案 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"
。没有特殊的字符串特定含义。