Scala数据类型(二)
Scala 的数据类型和Java是类似的,所有Java的基本类型在scala包中都有对应的类,将Scala代码编译为Java字节码时,Scala编译器将尽可能使用Java的基本类型,从而提供基本类型的性能优势
8种基本数据类型,位于scala包中:Byte,Short,Int,Long,Float,Double,Char,Boolean
Scala中没有基本数据类型的概念,所有的类型都是对象。
关系图:
- Any :Any是所有其他类的超类
- AnyRef:Scala里所有引用类(reference class)的基类
- Unit:只有一个实例值
()
,方法返回Unit 相当于返回了Java中的void - Null:每个引用类的子类
- Nothing:在Scala的类层级的最低端;它是任何其他类型的子类型,可以赋值给任何其他类型,用于异常,表明不正常的返回
看下Int类型的源码:
Int 继承了scala.AnyRef,定义了Int的最大值和最小值,以及基本操作,如+ - * /等等
j
基本类型的运算
Scala是一门函数式编程语言,也是面向对象的编程语言。在Scala中,即使是最基本的数据类型操作,其本质上也都是面向对象的实现和调用。
例如Int类型的加法1+2,实际上是Int对象1调用了自身的对象方法+,方法+的参数是一个Int类型的参数,我们赋值参数为Int对象2。也就是说1+2,实际上是1.+(2)