圖1 Scala中數(shù)據(jù)類型的層次結(jié)構(gòu)
從圖1中可以看出,Any是所有類型的超類型,也稱為頂級類型,它包含兩個直接子類,具體如下:
1.AnyVal:表示值類型,值類型描述的數(shù)據(jù)是一個不為空的值,而不是一個對象。它預(yù)定義了9種類型,分別是Double、Float、Long、Int、Short、Byte、Unit、Char和Boolean。其中,Unit是一種不代表任何意義的值類型,它的作用類似Java中的void。
2.AnyRef:表示引用類型??梢哉J(rèn)為,除值類型外,所有類型都繼承自AnyRef。
?在Scala數(shù)據(jù)類型層級結(jié)構(gòu)的底部,還有兩個數(shù)據(jù)類型,分別是Nothing和Null,具體介紹如下:
1.Nothing:所有類型的子類型,也稱為底部類型。它常見的用途是發(fā)出終止信號,例如拋出異常、程序退出或無限循環(huán)。
2.Null:所有引用類型的子類型,它主要用途是與其他JVM語言互操作,幾乎不在Scala代碼中使用。