【发布时间】:2020-07-05 10:26:38
【问题描述】:
解决十亿美元错误的两种不同方法。对我来说,前者似乎非常冗长(因此非常低级),但一些语言(例如 Rust 或 Haskell)选择通过完全删除 null 来强制执行它。为什么?与 null 安全类型相比,可选项有哪些优势?
【问题讨论】:
-
我不明白。 Haskell 具有 null 安全类型,因为它们不能为 null。
-
Haskell 如何remove为空?您正在添加一个不需要的前提,即那里有一些空值。 Null 只是一个不指向任何内容的引用的哨兵值,您不关心 Haskell 中的引用,只关心值(这些值是否实现为指向值的指针是一个实现细节)。
-
@Guildenstern 对于空安全类型,我的意思是显式可空性,例如 Kotlin 中的
String与String?。也许“删除”是错误的词,我应该说“未实施”。