Scala與Java具有相同的資料型別,具有相同的記憶體占用和精度。以下是提供Scala中可用的所有資料型別的詳細資訊的表格:
序號 | 資料型別 | 說明 |
---|---|---|
1 | Byte | 8 位有符號值,範圍從-128 至127 |
2 | Short | 16 位有符號值,範圍從-32768 至32767 |
3 | Int | 32 位有符號值,範圍從-2147483648 至2147483647 |
4 | Long | 64 位有符號值,範圍從-9223372036854775808 至9223372036854775807 |
5 | Float | 32 位IEEE 754單精度浮點值 |
6 | Double | 64 位IEEE 754雙精度浮點值 |
7 | Char | 16 位無符號Unicode 字元。範圍從U+0000 到U+FFFF |
8 | String | 一個Char 型別序列 |
9 | Boolean | 文字值true 或文字值false |
10 | Unit | 對應於無值 |
11 | Null | null 或空參照 |
12 | Nothing | 每種其他型別的亞型; 不包括無值 |
13 | Any | 任何型別的超型別; 任何物件的型別為Any |
14 | AnyRef | 任何參照型別的超型別 |
上面列出的所有資料型別都是物件。Scala中沒有類似Java中那樣的原始型別。 這意味著您可以呼叫Int
,Long
等方法。
Scala用於文字的規則是簡單直觀的,本節介紹所有基本的Scala文字。
整合文字
整數文字通常為Int
型別,或Long
型別,後跟L
或l
字尾。這裡有一些整數文字 -
0
035
21
0xFFFFFFFF
0777L
浮點文字
浮點文字的型別為Float
,後跟浮點型別字尾F
或f
,否則為Double
型別。 這裡有一些浮點文字 -
0.0
1e30f
3.14159f
1.0e100
.1
布林文字
布林文字:true
和false
是Boolean
型別的成員。
符號文字
符號文字'x
是表示式scala.Symbol(「x」)
的縮寫。符號是一個case
類,其定義如下 -
ackage scala
final case class Symbol private (name: String) {
override def toString: String = "'" + name
}
字元文字
字元文字是用引號括起來的單個字元。字元是可列印的Unicode字元或由跳脫序列描述。 這裡有一些字元文字 -
'a'
'\u0041'
'\n'
'\t'
字串文字
字串文字是雙引號中的一系列字元。字元是可列印的Unicode字元或由跳脫序列描述。 這裡有一些字串文字 -
"Hello,\nWorld!"
"This string contains a \" character."
多行字串
多行字串文字是用三個引號""" ... """
括起來的一系列字元。字元序列是任意的,除了它最終可能包含三個或更多個連續的引號。
字元不一定是可列印的; 換行符或其他控制字元也是允許的。這是一個多行字串文字 -
"""the present string
spans three
lines."""
Null值
null
值的型別為scala.Null
,因此與每個參照型別相容。它表示參照一個特殊的「null」
物件的參考值。
以下跳脫序列在字元和字串文字中被識別。
Unicode為0
到255
之間的字元也可以用八進位制跳脫來表示,即反斜槓「\」
後面是一個最多三個八進位制字元的序列。以下是顯示幾個跳脫序列字元的範例 -
範例
object Test {
def main(args: Array[String]) {
println("Hello\tWorld\n\n" );
}
}
當上述程式碼被編譯和執行時,它產生以下結果 -
Hello World