不同的表現只是想知道如果下面是一個錯誤或功能:隱丘壑與類型註釋
Welcome to Scala version 2.10.0-M3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0).
Type in expressions to have them evaluated.
Type :help for more information.
scala> class TypeClass[T]
defined class TypeClass
scala> trait A[T] {
| implicit val t = implicitly[TypeClass[T]]
| }
<console>:9: error: could not find implicit value for parameter e: TypeClass[T]
implicit val t = implicitly[TypeClass[T]]
^
正如預期的那樣,這並不編譯,因爲有上T
沒有限制。但是當我添加一個類型註釋它編譯:
scala> trait A[T] {
| implicit val t: TypeClass[T] = implicitly[TypeClass[T]]
| }
defined trait A
不應該編譯器在這裏抱怨?爲什麼類型註釋會有所作爲?如果我們用這個特徵實例化一些東西,t
是null
。