gpt4 book ai didi

Scala:空和无

转载 作者:行者123 更新时间:2023-12-03 07:36:29 26 4
gpt4 key购买 nike

据说 scala.Nothing 和 scala.Null 是底层类,它们扩展了所有其他 AnyRef 类。考虑下面的代码片段

class Test() {}
val test:Test = null

因此,要使语句成功,Null 应该扩展自定义类 Test (即 Test 是 Null 的父类(super class)型),或者类型系统应该异常(exception)抛出 scala.Null 类型不匹配错误。 scala 如何确保这两个类始终扩展 scala 中的任何其他 AnyRef 后代类?

最佳答案

通常编译器会显式处理底层类型一致性,如 the excerpt from scala compiler 中所示。 :

...
} else if (isNullType) {
if (other.isNothingType) false
else if (other.isPrimitive) false
else true // Null conforms to all classes (except Nothing) and arrays.
} else if (isNothingType) {
true
} else other match {
...

关于Scala:空和无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29231090/

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