在 Haskell 中,Maybe
类型可以是Nothing
或Just a
data Maybe = Nothing | Just a
如果我们称Maybe
联合类型,那么Nothing
是什么? Type
?不,它不是一个类型,你不能将变量声明为Nothing
类型。
也许你会说类型构造函数,没错,但我想表达一个事实,即Nothing
和Just
是不同的情况。
实例?类型案例?
它是一个
数据构造函数。由于它没有参数,因此也称为常量和空数据构造函数。
这些数据构造函数将值(这里没有值(与标签一起分组:某种标识符,标识它是Nothing
,而不是Just
。
Nothing
也称为"变体"(或"变体类型"(Maybe a
的"案例"。这个术语在OCaml中的使用频率高于Haskell,例如,现实世界OCaml的变体章节(我不知道在其他语言中常见的是什么(。