天天看點

Scala 資料類型

Scala 與 Java有着相同的資料類型,下表列出了 Scala 支援的資料類型:

資料類型

描述

Byte

8位有符号補碼整數。數值區間為 -128 到 127

Short

16位有符号補碼整數。數值區間為 -32768 到 32767

Int

32位有符号補碼整數。數值區間為 -2147483648 到 2147483647

Long

64位有符号補碼整數。數值區間為 -9223372036854775808 到 9223372036854775807

Float

32 位, IEEE 754 标準的單精度浮點數

Double

64 位 IEEE 754 标準的雙精度浮點數

Char

16位無符号Unicode字元, 區間值為 U+0000 到 U+FFFF

String

字元序列

Boolean

true或false

Unit

表示無值,和其他語言中void等同。用作不傳回任何結果的方法的結果類型。Unit隻有一個執行個體值,寫成()。

Null

null 或空引用

Nothing

Nothing類型在Scala的類層級的最底端;它是任何其他類型的子類型。

Any

Any是所有其他類的超類

AnyRef

AnyRef類是Scala裡所有引用類(reference class)的基類

上表中列出的資料類型都是對象,也就是說scala沒有java中的原生類型。在scala是可以對數字等基礎類型調用方法的。

Scala 非常簡單且直覺。接下來我們會詳細介紹 Scala 字面量。

整型字面量用于 Int 類型,如果表示 Long,可以在數字後面添加 L 或者小寫 l 作為字尾。:

如果浮點數後面有f或者F字尾時,表示這是一個Float類型,否則就是一個Double類型的。執行個體如下:

布爾型字面量有 true 和 false。

符号字面量被寫成: <b>'&lt;辨別符&gt;</b> ,這裡 <b>&lt;辨別符&gt;</b> 可以是任何字母或數字的辨別(注意:不能以數字開頭)。這種字面量被映射成預定義類scala.Symbol的執行個體。

如:

符号字面量 <b>'x</b> 是表達式 <b>scala.Symbol("x")</b> 的簡寫,符号字面量定義如下:

在 Scala 字元變量使用單引号 ' 來定義,如下:

其中 <b>\</b> 表示轉義字元,其後可以跟 <b>u0041</b> 數字或者 <b>\r\n</b> 等固定的轉義字元。

在 Scala 字元串字面量使用雙引号 " 來定義,如下:

多行字元串用三個雙引号來表示分隔符,格式為:""" ... """。

執行個體如下:

空值是 scala.Null 類型。

Scala.Null和scala.Nothing是用統一的方式處理Scala面向對象類型系統的某些"邊界情況"的特殊類型。

Null類是null引用對象的類型,它是每個引用類(繼承自AnyRef的類)的子類。Null不相容值類型。

下表列出了常見的轉義字元:

轉義字元

Unicode

\b

\u0008

倒退(BS) ,将目前位置移到前一列

\t

\u0009

水準制表(HT) (跳到下一個TAB位置)

\n

\u000a

換行(LF) ,将目前位置移到下一行開頭

\f

\u000c

換頁(FF),将目前位置移到下頁開頭

\r

\u000d

回車(CR) ,将目前位置移到本行開頭

\"

\u0022

代表一個雙引号(")字元

\'

\u0027

代表一個單引号(')字元

\\

\u005c

代表一個反斜線字元 '\'

0 到 255 間的 Unicode 字元可以用一個八進制轉義序列來表示,即反斜線‟\‟後跟

最多三個八進制。

在字元或字元串中,反斜線和後面的字元序列不能構成一個合法的轉義序列将會導緻

編譯錯誤。

以下執行個體示範了一些轉義字元的使用:

object Test {

   def main(args: Array[String]) {

      println("Hello\tWorld\n\n" );

   }

}

執行以上代碼輸出結果如下所示: