关系
- Any 是一个 abstract 类, scala 中的顶级父类
- AnyVal 是一个 abstract 类,继承 Any,目的是取代 primary 类型
- AnyRef 是一个 trait,继承 Any,重写了 Any 中部分方法
Any
- 最主要的一个用途就是为一些值类型提供简单的方法继承
trait Printable extends Any {
def print(): Unit = println(this)
}
class Wrapper(val underlying: Int) extends AnyVal with Printable
val w = new Wrapper(3)
w.print()
- 可以在声明集合且不确定数据类型时使用类似Java的Object。这个算是AnyVal的补充
var A:Map[Char,Any] = Map()
A += ('K' -> 10)
A += ('L' -> "L")
AnyVal
数字类型 | 非数字类型 |
---|
Scala.Double | scala.Unit |
scala.Float | scala.Boolean |
scala.Long | |
scala.Int | |
scala.Char | |
scala.Short | |
scala.Byte | |
AnyRef
- AnyRef 类是所有引用类型的根类。除了值类型之外的所有类型都来自此类
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cb91049192883eeaae51965fd6ac6ec7.png)