Programming in Scala 2nd Note

Define some variables

Scala有兩種變數類型var and val

val一旦初始化,將無法重新賦值;var則可在生命週期範圍內任意地重新賦值。

// Here's val definetion
scala> val msg = "Hello, world!"
msg: String = Hello, world!

這個例子說明了Scala編譯器可以推斷類型,這樣往往是最好的做法法,而不需要顯式類型的註解。但有時候明確指定類型保證Scala編譯器推斷的類型是你想要的,而且增加代碼的可讀性。

在Scala中,可以在變數名之後加上類型,並以冒別區隔,如

val msg2: String = "Hello again, world!"
msg2: String = Hello again, world!

讓我們回到msg, 它是一個val而不是var,來看看如果重新賦值給它會如何,

msg = "Goodbye cruel world!"
<console>:8: error: reassignment to val
       msg = "Goodbye cruel world!"
           ^

如果你想對變數重新賦值,應該使用var,

 scala> var greeting = "Hello, world!"
 greeting: String = Hello, world!

 scala> greeting = "Leave me alone, world!"
 greeting: String = Leave me alone, world!