Scala类型系统与Predef对象深入解析
1. Scala类型基础
Scala 2.10引入了用户自定义的值类,这些类扩展自 AnyVal 。除了值类,其他类型都是引用类型,它们派生自 AnyRef ,这类似于Java中的 java.lang.Object 。在Scala 2.10之前,编译器会将一个名为 ScalaObject 的“标记”特质混入所有Scala引用类型的实例中,但从Scala 2.11开始,这一特性被移除了。
2. Nothing和Null类型
- 类型特性 :
Nothing和Null是类型系统底层的特殊类型。Nothing是所有其他类型的子类型,而Null是所有引用类型的子类型。 - Null类型 :在大多数编程语言中,
null是一个常见的概念,但通常不会定义Null类型,只是用null关键字来表示引用没有赋值。在Scala中,Null的实现如下:
package scala
abstract final class Null extends AnyRef
超级会员免费看
订阅专栏 解锁全文
85

被折叠的 条评论
为什么被折叠?



