gpt4 book ai didi

scala - Scala 中的空引用如何合理化?

转载 作者:行者123 更新时间:2023-12-04 19:56:48 24 4
gpt4 key购买 nike

里氏替换原则:B 是 A 的子类型当且仅当任何人能用 A 做的事都能用 B 做。那么为什么 Null 是 Scala 中所有类的子类型,即使根据上面的定义它不是任何类的子类型?难道不能将 Null 定义为实现所有可能的方法,每个方法都返回 null 吗? Null 在 Scala 中被这样定义的原因是什么?

最佳答案

Null 在 JVM 上几乎是不可避免的。引用可以为空。 Scala 无法阻止它。

Scala 所做的只是将 Java 的 null 包含到统一的类型系统中。它的存在是为了 Java 互操作,仅此而已。 Null 在 Java 中是错误的,在 Scala 中也是错误的。

是的,空引用是最终的 LSP 违规行为。不,没有办法解决这个问题。将 null 上的方法调用评估为 null 而不是抛出 NullPointerException 不会或多或少是正确的,同样是荒谬的。

这里真的没什么可看的。在 Option(...) 中包装任何可为 null 的内容,忘掉这个不正确的黑坑,继续前进。

关于scala - Scala 中的空引用如何合理化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com