Scalaの型システムがいまいちぴんとこない・・・
Scalaでobject宣言したものはシングルトンオブジェクトといわれる。
これを引数にとりたいなと思ったけど・・・
object X
def f(x: X): Unit = {}
これはコンパイルエラー、Xの型が見つからないといわれる。
一応、X.getClass().getName()とやるとインナークラス(?)としてコンパイルされてるっぽいのはわかる。
でも、以下のやつはコンパイル通る。
class Parent()
object X extends Parent
def f(x: Parent): Unit = {}
f(X)
クラスを継承してやると型を持つようになる。
型を後付してあげてるような感じ。