変数、型

ここでは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は本当に必要なときにのみ利用すること。

基本の型は以下のとおり

  • Byte:符号付8ビット
  • Short:符号付16ビット
  • Int:符号付32ビット
  • Long:符号付64ビット
  • Char:符号なし16ビットUnicode文字
  • String:Charのシーケンス
  • Float:32ビット単精度浮動小数
  • Double:64ビット倍精度浮動小数
  • Boolean:ブーリアン型(trueまたはfalse)
scala> val c:String = "hello, world" // コロンの後ろに型を指定する
c: String = hello, world