Scala 資料類型


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

## 描述Byte8位元有符號補碼整數。數值區間為 -128 到 127Short16位元有符號補碼整數。數值區間為 -32768 到 32767#Int 32位元有符號補碼整數。數值區間為 -2147483648 到 2147483647Long 64位元有符號補碼整數。數值區間為-9223372036854775808 到9223372036854775807#Float
資料類型
##Double#32位元IEEE754單精確度浮點數 ##64位元IEEE754單精度浮點數
Char#16位元無符號Unicode字元, 區間值為U+0000 到U+FFFF
String字元序列
Booleantrue或false
Unit表示無值,和其他語言中void等同。用作不傳回任何結果的方法的結果類型。 Unit只有一個實例值,寫成()。
Nullnull 或空引用
#NothingNothing型別在Scala的類別層級的最低端;它是任何其他類型的子類型。
AnyAny是所有其他類別的超類別
AnyRefAnyRef類別是Scala裡所有引用類別(reference class)的基底類別

上表所列的資料型態都是對象,也就是說scala沒有java中的原生型別。在scala是可以對數字等基礎型別呼叫方法的。


Scala 基礎字面量

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

整數字面量

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

0
035
21 
0xFFFFFFFF 
0777L

浮點型字面量

如果浮點數後面有f或F後綴時,表示這是一個Float類型,否則就是一個Double類型的。實例如下:

0.0 
1e30f 
3.14159f 
1.0e100
.1

布林型字面量

布林型字面量有 true 和 false。

符號字面量

符號字面量被寫成:'<識別字> ,這裡<識別字> 可以是任何字母或數字的標識(注意:不能以數字開頭)。這種字面量被映射成預定義類別scala.Symbol的實例。

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


package scala
final case class Symbol private (name: String) {
   override def toString: String = "'" + name
}

字符字面量

在scala中字符類型表示為半角單引號(')中的字符,如下:

'a' 
'\u0041'
'\n'
'\t'

其中\ 表示轉移字符,其後可以跟u0041 數字或\r\n 等固定的轉義字元。

字串字面量

字串表示方法是在雙引號中(") 包含一系列字符,如:

"Hello,\nWorld!"
"php中文网官网:www.php.cn"

多行字串的表示方法

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

val foo = """php中文网
www.php.cn
www.w3cschool.cc
www.runnoob.com
以上三个地址都能访问"""

Null 值

空值是scala.Null 類型。 "的特殊類型。

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

Scala轉義字元

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

#轉義字元

Unicode #描述\b\u0008#已退格(BS) ,將目前位置移到前一列\t\u0009 水平製表(HT) (跳轉到下一個TAB位置)\n\u000c換行(LF) ,將目前位置移到下一行開頭\f\u000c換頁(FF),將目前位置移到下頁開頭\r\u000dEnter(CR) ,將目前位置移到本行開頭\"\u0022#代表一個雙引號(")字元\'\u0027代表一個單引號(')字元\\ \u005c代表一個反斜線字元'\'#

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

在字元或字串中,反斜線和後面的字元序列不能構成一個合法的轉義序列將會導致 編譯錯誤。

以下實例示範了一些轉義字元的使用:

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

執行上述程式碼輸出結果如下所示:

$ scalac Test.scala
$ scala Test
Hello	World


$