scala:数据类型

7个数值类型,1个布尔类型:

Byte、Char、Short、Int、Long、Float、Double和Boolean  //这些都是类类型

scala中基本类型和包装类型转换将由虚拟机自动完成

scala> 1.toString()
res6: String = 1

Scala中所有的类都扩展自Any类,其中Any类有两个子特质,AnyValAnyRef

AnyVal:上面7个数值类型和1个布尔类型,外加一个Unit类型,这9个类型都是其子类。

AnyRef:所有除了上面9个类型的所有其他类型都是其子类(类似Java中的Object类)。

特殊类型

Unit类型,唯一实例()
Null类型,唯一实例null
Nothing类型,没有实例。
其中,Nothing是任何类型的子类。Null是任何引用类型的子类,但是不是数值类型的子类,如不能把null赋值给Int类型的变量。
Unit相当于void,其并不是任何类型的超类,但是编译器依然允许任何对象被替换为(),如下:

object M {
  def printAny(n:Any) {println(n)}
  def printU(n: Unit) {println(n)}
  
  def main(args: Array[String]){
     printAny("hello") //输出hello
     printU("hello") //输出(),说明编译器将String类的对象替换为Unit的对象()
  }
}
posted @ 2018-12-29 09:00  xuejianbest  阅读(157)  评论(0编辑  收藏  举报