Scala - 資料型別



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

一系列字元

9

Boolean

文字 true 或文字 false 之一

10

Unit

對應於無值

11

Null

null 或空引用

12

Nothing

所有其他型別的子型別;不包含任何值

13

Any

任何型別的超型別;任何物件都是 Any 型別

14

AnyRef

任何引用型別的超型別

上面列出的所有資料型別都是物件。與 Java 不同,這裡沒有原始型別。這意味著您可以對 Int、Long 等呼叫方法。

Scala 基本字面量

Scala 用於字面量的規則簡單直觀。本節解釋了所有基本的 Scala 字面量。

整數字面量

整數字面量通常為 Int 型別,或者在後跟 L 或 l 字尾時為 Long 型別。以下是一些整數字面量:

0
035
21 
0xFFFFFFFF 
0777L

浮點字面量

浮點字面量在後跟浮點型別字尾 F 或 f 時為 Float 型別,否則為 Double 型別。以下是一些浮點字面量:

0.0 
1e30f 
3.14159f 
1.0e100
.1

布林字面量

布林字面量 truefalse 是 Boolean 型別的成員。

符號字面量

符號字面量 'x 是表示式 scala.Symbol("x") 的簡寫。Symbol 是一個 case class,定義如下。

package 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."""

空值

空值為 scala.Null 型別,因此與每個引用型別相容。它表示引用一個特殊“null”物件的引用值。

轉義序列

在字元和字串字面量中識別以下轉義序列。

轉義序列 Unicode 描述
\b \u0008 退格 BS
\t \u0009 水平製表符 HT
\n \u000c 換頁 FF
\f \u000c 換頁 FF
\r \u000d 回車 CR
\" \u0022 雙引號 "
\' \u0027 單引號 .
\\ \u005c 反斜槓 \

Unicode 在 0 到 255 之間的字元也可以用八進位制轉義表示,即反斜槓 '\' 後跟最多三個八進位制字元。以下示例顯示了一些轉義序列字元:

示例

object Test {
   def main(args: Array[String]) {
      println("Hello\tWorld\n\n" );
   }
} 

當以上程式碼編譯並執行時,會產生以下結果:

輸出

Hello   World
廣告