Scalaには2つの変数があります。
valとvarです。
valは再代入ができない変数です。valueを短縮したものですね。varは再代入ができます。variableなので正確にはこちらが変数でvalは値といった方がいいのでしょうか。
早速試してみます。まずはval。
scala> val la = “val test”
la: java.lang.String = val test
scala> print(la)
val test
scala> la = “another”
:5: error: reassignment to val
la = “another”
^
scala> la = null
:5: error: reassignment to val
la = null
^
はじめにlaに”val test”という文字列を代入しました。printしたのちlaに再度”another”という文字列を代入しようとしてもエラーが発生しています。nullの代入も同様です。
今度はvarを使ってみます。
scala> var ra = "var test"
ra: java.lang.String = var test
scala> print(ra)
var test
scala> ra = "another"
ra: java.lang.String = another
scala> print(ra)
another
scala> ra = null
ra: java.lang.String = null
scala> print(ra)
null
varでは再代入できました。
上記ではvarに文字列を代入して、再度文字列を代入しましたが、再代入で数値を入れてみます。
scala> ra = 1
:5: error: type mismatch;
found : Int(1)
required: java.lang.String
ra = 1
^
一度文字列を代入したものには文字列以外は代入できないようです。
でははじめに数値を代入して数値を再代入してみます。
scala> var num = 2
num: Int = 2
scala> num = num * 5
num: Int = 10
ということで、今回はここまでにしときます。