変数、型
ここではscalaの変数、型の基本を記述。
変数
変数宣言には val と var が存在。valはイミュータブル(再代入不可)。varはミュータブル(再代入可)。
scala> val a = 10 // 再代入不可の変数 a を定義 a: Int = 10 scala> a = 11 <console>:5: error: reassignment to val // 再代入不可 a = 11 scala> var b = 20 // 再代入可能の変数 b を定義 b: Int = 20 scala> b = 21 b: Int = 21 // 再代入可能
ちなみに、上記の例では変数の型(上記例ではInt)を指定していない。これはscalaが「型推論」の機能を有しているため。初期化値が整数のため、scalaは変数をIntと「推論」している。
手続き型言語になれた人間がscalaのような関数型言語を利用する場合、できる限りvalを利用すること。再代入可ということは、変数の中身がどこかで修正されてしまう可能性があり、バグの元となるため。varは本当に必要なときにのみ利用すること。