Scala的數據類型所有相同於Java中,具備相同的內存佔用和精度。如下表是有關可在Scala中全部的數據類型的細節:javascript
數據類型 | 描述 |
---|---|
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 | 任何引用類型的超類型 |
Scala的變量聲明有不一樣的語法,它們能夠被定義爲值,即,常量或變量。下面是使用var關鍵字來定義一個變量的語法:java
var myVar :String="Foo"
在這裏,myVar使用關鍵字var聲明。這意味着它是一個能夠改變值的變量,被稱爲可變變量。下面是使用val關鍵字來定義變量的語法:python
val myVal :String="Foo"
這裏,myVal是使用關鍵字val聲明。這意味着,它是不能改變的變量,這是所謂的不可變變量。c++
變量類型在變量名後面指定,前在equals以前簽署。能夠經過它的數據類型定義任何類型的Scala變量以下:函數
val or val VariableName:DataType[=InitialValue]
若是不指定任何初始值變量,那麼以下所示它是有效的:this
var myVar :Int; val myVal :String;
當分配一個初始值給一個變量,Scala編譯器能夠計算出根據分配給它的值的變量類型。這就是所謂的變量類型推斷。所以,能夠寫這些變量的聲明以下這樣:spa
var myVar =10; val myVal ="Hello, Scala!";
在這裏,默認狀況下,myVar是int類型scala
for(i <- 0 to 10 reverse)print(i)code
scala中的match語句用來在一個列表中選擇某一個分支來執行分支的語句塊,相似於其餘語言中的swtich..case語句對象
下面是一個簡單的例子
var myVar ="theValue"; myVar match { case"someValue" => println(myVar +" 1"); case"thisValue" => println(myVar +" 2"); case"theValue" => println(myVar +" 3"); case"doubleValue"=> println(myVar +" 4");}有些時候case 要捕獲一些默認狀況.