我认为类型字段是一种更强大的类型参数语法,但遇到了一个例子,我可以通过后者而不是前者来表达我的意图。问题是 trait 可以A
编译,而 traitB
不能。
trait Box[T]
trait A[T] extends (Box[T] => Box[T]) {
override def apply(box: Box[T]): Box[T] = identity(box)
}
trait B extends (Box[T] => Box[T]) {
type T
override def apply(box: Box[T]): Box[T] = identity(box)
}
有没有办法表达A
使用类型字段表达的内容B
?
编辑:错误信息:
not found: type T
trait B extends (Box[T] => Box[T]) {
not found: type T
trait B extends (Box[T] => Box[T]) {