Scala 數(shù)據(jù)類型

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

數(shù)據(jù)類型描述
Byte8位有符號(hào)補(bǔ)碼整數(shù)。數(shù)值區(qū)間為 -128 到 127
Short16位有符號(hào)補(bǔ)碼整數(shù)。數(shù)值區(qū)間為 -32768 到 32767
Int 32位有符號(hào)補(bǔ)碼整數(shù)。數(shù)值區(qū)間為 -2147483648 到 2147483647
Long 64位有符號(hào)補(bǔ)碼整數(shù)。數(shù)值區(qū)間為 -9223372036854775808 到 9223372036854775807
Float32 位, IEEE 754 標(biāo)準(zhǔn)的單精度浮點(diǎn)數(shù)
Double64 位 IEEE 754 標(biāo)準(zhǔn)的雙精度浮點(diǎn)數(shù)
Char16位無符號(hào)Unicode字符, 區(qū)間值為 U+0000 到 U+FFFF
String字符序列
Booleantrue或false
Unit表示無值,和其他語(yǔ)言中void等同。用作不返回任何結(jié)果的方法的結(jié)果類型。Unit只有一個(gè)實(shí)例值,寫成()。
Nullnull 或空引用
NothingNothing類型在Scala的類層級(jí)的最底端;它是任何其他類型的子類型。
AnyAny是所有其他類的超類
AnyRefAnyRef類是Scala里所有引用類(reference class)的基類

上表中列出的數(shù)據(jù)類型都是對(duì)象,也就是說scala沒有java中的原生類型。在scala是可以對(duì)數(shù)字等基礎(chǔ)類型調(diào)用方法的。

Scala 基礎(chǔ)字面量

Scala 非常簡(jiǎn)單且直觀。接下來我們會(huì)詳細(xì)介紹 Scala 字面量。

整型字面量

整型字面量用于 Int 類型,如果表示 Long,可以在數(shù)字后面添加 L 或者小寫 l 作為后綴。:

0
035
21 
0xFFFFFFFF 
0777L

浮點(diǎn)型字面量

如果浮點(diǎn)數(shù)后面有f或者F后綴時(shí),表示這是一個(gè)Float類型,否則就是一個(gè)Double類型的。實(shí)例如下:

0.0 
1e30f 
3.14159f 
1.0e100
.1

布爾型字面量

布爾型字面量有 true 和 false。

符號(hào)字面量

符號(hào)字面量被寫成: '<標(biāo)識(shí)符> ,這里 <標(biāo)識(shí)符> 可以是任何字母或數(shù)字的標(biāo)識(shí)(注意:不能以數(shù)字開頭)。這種字面量被映射成預(yù)定義類scala.Symbol的實(shí)例。

如: 符號(hào)字面量 'x 是表達(dá)式 scala.Symbol("x") 的簡(jiǎn)寫,符號(hào)字面量定義如下:

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

字符字面量

在 Scala 字符變量使用單引號(hào) ' 來定義,如下:

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

其中 \ 表示轉(zhuǎn)義字符,其后可以跟 u0041 數(shù)字或者 \r\n 等固定的轉(zhuǎn)義字符。

字符串字面量

在 Scala 字符串字面量使用雙引號(hào) " 來定義,如下:

"Hello,\nWorld!"
"菜鳥教程官網(wǎng):www.soo66.com"

多行字符串的表示方法

多行字符串用三個(gè)雙引號(hào)來表示分隔符,格式為:""" ... """。

實(shí)例如下:

val foo = """菜鳥教程
www.soo66.com
www.soo66.com
www.runnoob.com
以上三個(gè)地址都能訪問"""

Null 值

空值是 scala.Null 類型。

Scala.Null和scala.Nothing是用統(tǒng)一的方式處理Scala面向?qū)ο箢愋拖到y(tǒng)的某些"邊界情況"的特殊類型。

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

Scala 轉(zhuǎn)義字符

下表列出了常見的轉(zhuǎn)義字符:

轉(zhuǎn)義字符Unicode描述
\b\u0008退格(BS) ,將當(dāng)前位置移到前一列
\t\u0009水平制表(HT) (跳到下一個(gè)TAB位置)
\n\u000a換行(LF) ,將當(dāng)前位置移到下一行開頭
\f\u000c換頁(yè)(FF),將當(dāng)前位置移到下頁(yè)開頭
\r\u000d回車(CR) ,將當(dāng)前位置移到本行開頭
\"\u0022代表一個(gè)雙引號(hào)(")字符
\'\u0027代表一個(gè)單引號(hào)(')字符
\\\u005c代表一個(gè)反斜線字符 '\'

0 到 255 間的 Unicode 字符可以用一個(gè)八進(jìn)制轉(zhuǎn)義序列來表示,即反斜線?\?后跟 最多三個(gè)八進(jìn)制。

在字符或字符串中,反斜線和后面的字符序列不能構(gòu)成一個(gè)合法的轉(zhuǎn)義序列將會(huì)導(dǎo)致 編譯錯(cuò)誤。

以下實(shí)例演示了一些轉(zhuǎn)義字符的使用:

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

運(yùn)行后輸出結(jié)果如下:

$ scalac Test.scala
$ scala TestHello    World
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清