次の定義があると仮定します。
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
^
同じ「トリック」がここで機能しないのはなぜですか?違いはなんですか ?