作為scala快速入門系列的第五篇部落格,小菌為大家帶來的是關于資料類型與操作符的内容。
scala中的類型以及操作符絕大多數和java一樣,通過本篇部落格,我們将學習:
- 與Java不一樣的一些用法
- scala類型的繼承體系
資料類型
基礎類型 | 類型說明 |
---|---|
Byte | 8位帶符号整數 |
Short | 16位帶符号整數 |
Int | 32位帶符号整數 |
Long | 64位帶符号整數 |
Char | 16位無符号Unicode字元 |
String | Char類型的序列(字元串) |
Float | 32位單精度浮點數 |
Double | 64位雙精度浮點數 |
Boolean | true或false |
注意下 scala 類型與java的差別
[!NOTE]
1.scala中所有的類型都使用大寫字母開頭
2.整形使用Int而不是Inteage
3.scala中定義變量可以不寫類型,讓scala編譯器自動推斷
運算符
類别 | 操作符 |
---|---|
算術運算符 | +、-、*、/ |
關系運算符 | >、<、==、!=、>=、<= |
邏輯運算符 | &&、||、! |
位運算符 | &、||、^、<<、>> |
[!NOTE]
- scala中沒有,++、–運算符
- 與Java不一樣,在scala中,可以直接使用
、==
進行比較,它們與!=
方法表示一緻。而比較兩個對象的引用值,使用eqequals
示例
有一個字元串"abc",再建立第二個字元串,值為:在第一個字元串後拼接一個空字元串。
然後使用比較這兩個字元串是否相等、再檢視它們的引用值是否相等。
參考代碼
scala類型層次結構
類型 | 說明 |
---|---|
Any | 所有類型的父類,,它有兩個子類AnyRef與AnyVal |
AnyVal | 所有數值類型的父類 |
AnyRef | 所有對象類型(引用類型)的父類 |
Unit | 表示空,Unit是AnyVal的子類,它隻有一個的執行個體() 它類似于Java中的void,但scala要比Java更加面向對象 |
Null | Null是AnyRef的子類,也就是說它是所有引用類型的子類。它的執行個體是null 可以将null指派給任何對象類型 |
Nothing | 所有類型的子類 不能直接建立該類型執行個體,某個方法抛出異常時,傳回的就是Nothing類型,因為 Nothing是所有類的子類,那麼它可以指派為任何類型 |
通過下面一個執行個體,為大家展示一個nothing的執行個體。
Nothing
問題
以下代碼是否有問題?
val b:Int = null
複制
結果
scala會解釋報錯: Null類型并不能轉換為Int類型,說明Null類型并不是Int類型的子類
本篇部落格到這裡就結束了,感興趣的小夥伴們可以持續關注喲~下一篇将為大家帶來
條件表達式
的基本使用,敬請期待!