次の定義があると仮定します。
scala> trait T
defined trait T
scala> object A extends T
defined module A
次に、次のタイプのオブジェクトを作成できますT
。
scala> val t: T = A
t: T = A$@98b13b
ここではキーワードが使用されていないnew
ため、ここではapply
メソッドが使用されます。apply
しかし、これまでメソッドを定義していなかったので、apply
ここではデフォルトのメソッドが使用されていると思いますか?しかし、それはどのように見えますか?
更新1:
同じタイプの変数を割り当てるA
と、エラーがスローされます。
scala> val a: A = A
<console>:9: error: not found: type A
val a: A = A
^
同じ「トリック」がここで機能しないのはなぜですか?違いはなんですか ?