menu
書いてる野郎
orebike@gmail.com
Scala には一点モノのクラスを作る専用の記法がある。それが(シングルトン)オブジェクト。
オブジェクトに実装される apply メソッドは、メソッド名を省略しオブジェクト名で呼び出すことができる。これはクラスのインスタンスに直接括弧をつけて呼び出すことができるあの記法と同様。
コンパニオンオブジェクトでは主に同名クラスの Factory メソッドとして実装されることが多い
Array クラスは普通にやるならば new
キーワードを使うが
var hoge:Array[Int] = new Array[Int](3) hoge(0) = 1 hoge(1) = 2 hoge(2) = 3
オブジェクトの apply を使うと
var hoge:Array[Int] = Array(1, 2, 3)
このようになる。一見 class のコンストラクタを変な風に呼びだしているように見えるがこれは同名のコンパニオンオブジェクトの apply メソッドを呼び出している。