位置:首頁 > 高級語言 > Scala教學 > Scala數據類型

Scala數據類型

Scala的數據類型全部相同於Java中,具有相同的內存占用和精度。以下表是有關可在Scala中所有的數據類型的細節:

數據類型 描述
Byte 8位有符號值。範圍從-128到127
Short 16位有符號值。範圍從-32768至32767
Int 32 位有符號值。範圍從 -2147483648 to 2147483647
Long 64位有符號值。 從-9223372036854775808到9223372036854775807
Float 32位IEEE754單精度浮點數
Double 64位IEEE754雙精度浮點數
Char 16位無符號Unicode字符。範圍由U+0000至U+FFFF
String 字符序列
Boolean 無論是字麵true或false字麵
Unit 對應於冇有值
Null 空或空引用
Nothing 每一個其他類型的子類型; 包括無值
Any Any類型的超類型;任何對象是任何類型
AnyRef 任何引用類型的超類型

上麵列出的所有的數據類型是對象。冇有原始的類型,如Java中。這意味著可以調用int,long等上的方法

Scala基本字麵值:

Scala中使用的文字規則是簡單和直觀的。這部分解釋了所有Scala中的基本文字。

整數值

整數文字通常是int類型,或類型龍其次是L或l後綴的時候。下麵是一些整數文字:

0
035
21 
0xFFFFFFFF 
0777L

浮點型

浮點文字是Float類型後跟一個浮點類型後綴F或f時,否則是Double類型。下麵是一些浮點文字:

0.0 
1e30f 
3.14159f 
1.0e100
.1

布爾類型

布爾字麵值true和false是Boolean類型的成員。

符號字麵值

符號常量'x是簡寫的表達scala.Symbol(“X”)。Symbol是一個類,它的定義如下。

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

字符

字符文字是用引號括起來的單個字符。該字符是一個可打印的Unicode字符或轉義序列描述。這裡有一些字符文字:

'a' 
'u0041'
'
'
'	'

字符串常量

字符串常量是在雙引號中的字符序列。字符或者是可打印Unicode字符或轉義序列描述。下麵是一些字符串:

"Hello,
World!"
"This string contains a " character."

多行字符串

多行字符串是包含在三重引號“”字符序列“...”“”。字符序列是任意的,不同之處在於它可以包含三個或更多個連續引號字符僅在未尾。

字符未必是可打印;新的一行或其他控製字符也是允許的。這裡是一個多行字符串:

"""the present string
spans three
lines."""

NULL值

null是scala.Null類型一個值,因此這個引用類型兼容。它表示參考值是指一種特殊的“空”的對象。

轉義序列:

以下轉義序列在字符和字符串。

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

介於0和255字符使用Unicode也可以通過一個八進製轉義,也就是說,一個反斜杠“”之後的最多三個八進製字符的序列表示。以下為例子來說明一些轉義字符序列:

object Test {
   def main(args: Array[String]) {
      println("Hello	World

" );
   }
} 

當上述代碼被編譯和執行時,它產生了以下結果:

Hello   World