假设我们有以下定义:
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
^
为什么同样的“技巧”在这里不起作用?有什么区别 ?