Scala入門 その2

Scalaスケーラブルプログラミング[第2版]をゆっくり読み進める。
第3章の途中まで読んだ。

面白いと思ったのは、以下の仕組み。

  • 括弧で囲んだ1つ以上の引数を変数に適用した場合、Scalaはその変数のapplyメソッド呼び出しにコードを書き換える。
  • 括弧で囲んだ1つ以上の引数を変数に代入した場合、Scalaはその変数のupdateメソッド呼び出しにコードを書き換える。

上記の仕組みによりコレクションの構築や更新は、直感的なコードで記述できるようになっているようだ。

例:Listの構築

val list = List(1, 2, 3) // List.apply(1, 2, 3)に書き換えられる

例:Arrayの更新

val array = Array("aa", "bb", "cc")
array(2) = "dd" // array.update(2, "dd")に書き換えられる

updateの方は、Rubyのaccessorの仕組みと似たような感じに見える。