ocaml 中的选项字符串

Option String in ocaml

我有一个 returns 一个 Some String 的库,即对我来说是一个可选字符串。

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

谢谢!

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

我会说类型 'a option 对每个类型 'a 都有相同的语义。类型 'a option 表示可以存在或不存在的类型的值。如果值存在,它采用 Some x 的形式,其中 x 是类型的值。如果该值不存在,则采用 None.

的形式

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