Latest web development tutorials

Scala 數據類型

Scala 與Java有著相同的數據類型,下表列出了Scala 支持的數據類型:

數據類型 描述
Byte 8位有符號補碼整數。 數值區間為-128 到127
Short 16位有符號補碼整數。 數值區間為-32768 到32767
Int 32位有符號補碼整數。 數值區間為-2147483648 到2147483647
Long 64位有符號補碼整數。 數值區間為-9223372036854775808 到9223372036854775807
Float 32位IEEE754單精度浮點數
Double 64位IEEE754單精度浮點數
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 非常簡單且直觀。 接下來我們會詳細介紹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!"
"本教程官网:www.w3big.com"

多行字符串的表示方法

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

實例如下:

val foo = """本教程
www.w3big.com
www.w3cschool.cc
www.runnoob.com
以上三个地址都能访问"""

Null 值

空值是scala.Null 類型。

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

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

Scala 轉義字符

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

轉義字符 Unicode 描述
\b \u0008 退格(BS) ,將當前位置移到前一列
\t \u0009 水平製表(HT) (跳到下一個TAB位置)
\n \u000c 換行(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" );
   }
} 
運行實例»

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

$ scalac Test.scala
$ scala Test
Hello	World


$