Any
Any是abstract类,它是类继承结构中最底层的。所有运行环境中的Scala类都是直接或间接继承自Any这个类,它就是其它语言(.Net,等)中的Object。
从Scala2.10 开始,对于一般性的traits(特性,特质)可以直接继承Any。一般性traits是指,继承自Any,并且只有defs成员,不需要初始化。
可以参考:
最主要的一个用途就是为一些值类型提供简单的方法继承
trait Printable extends Any { def print(): Unit = println(this)}class Wrapper(val underlying: Int) extends AnyVal with Printableval w = new Wrapper(3)w.print()
wrapper继承自AnyVal,AnyVal是值类型,并且扩展了traits,所以它就具有了Printable 的print方法
方法名 | 说明 |
---|---|
getClass(): Class[_] | 返回运行时类的对象 |
final def !=(arg0: Any): Boolean | 判断两个对象不同 |
final def ##(): Int | 对于除了null对象和被装箱的数值外,结果同hashCode |
final def ==(arg0: Any): Boolean | 判断两个对象是相同 |
final def asInstanceOf[T0]: T0 | 将传入的对象转为T0类型对象 |
def equals(arg0: Any): Boolean | 比较对象是否相等 |
def hashCode(): Int | 计算哈希值 |
final def isInstanceOf[T0]: Boolean | 检查动态传入的对象是否是T0类型 |
def toString(): String |
AnyRef
是所有引用类型的基类。除了值类型,所有类型都继承自AnyRef 。
参考:
除上面表格提供的方法外,还提供如下方法:
final def eq(arg0: ):
final def ne(arg0: ):
final def notify():
final def notifyAll():
final def synchronized[T0](arg0: ⇒ T0): T0
final def wait():
final def wait(arg0: , arg1: ):
final def wait(arg0: ):
AnyVal
AnyVal 所有值类型的基类, 它描述的是值,而不是代表一个对象。
它包括 9 个 AnyVal 子类型:.Double
scala.Float scala.Long scala.Int scala.Char scala.Short scala.Byte 上面是数字类型。scala.Unit 和 scala.Boolean 是非数字类型。
Scala 2.10 之前, AnyVal 是一个密封的 trait,不能被继承。 从 Scala 2.10开始,我们可以自定义一个从 AnyVal继承下来的类型。
对于这些基本类型的描述,和我们其它语言是相通的,具体可以参考