Scala OOP 基础五

2017/08/11 Scala

Scala OOP 基础知识五

类型层次结构

类型层次结构图如下:
scala2 在scala 2.10前,scala所有的引用类型都混入了名为scalaobject的marker特征,scala2.11后,这个特征已经去掉了。

Predef

隐式转换

Predef定义了很多的隐式转换规则,如:

@inline implicit def byteWrapper(x:Byte)   =new Runtime.RichByte(x)
...
implicit def Integer2int(x:java.lang.Integer):Int = x.intValue//将Integer转为scala中的int类型,

其中@inline标记使得编译器对这个函数作内联。隐式转换是scala自动触发的,所以不用人工操作。只需要定义好转换规则就可以了。

定义类型

这个很简单,如下所示:

type Map[A,+B]  = collection.immutable.Map[A,B]//这种就是别名
type Set[A]  	= collection.immiutable.Set[A]
type Function[-A,+B] = Function[A,b]

条件检查

在测试时,predef定义了许多方法。如

def assert(assertion:Boolean) // not true ,throw exception
def assert(assertion:Boolean,message:=>Any) 
...

这种