创建一个 Scala 特性的新实例
creating a new instance of a scala trait
请用 Scala 解释一下。
如果我有
trait A
我做不到
val a = new A
但是这个示例特征,
trait DS[-In, +Out]{def apply(i: In): Out}
可以有一个
的实例
val t1 = new DS[Any, Int]{def apply(i: Any) = i.toString.toInt}
这是怎么允许的?
与 class body {}
搭配使用效果很好。
val a = new A {}
发生的事情是,通过提供 class 正文,您正在创建一个匿名 class 内联来扩展特征。
请用 Scala 解释一下。
如果我有
trait A
我做不到
val a = new A
但是这个示例特征,
trait DS[-In, +Out]{def apply(i: In): Out}
可以有一个
的实例val t1 = new DS[Any, Int]{def apply(i: Any) = i.toString.toInt}
这是怎么允许的?
与 class body {}
搭配使用效果很好。
val a = new A {}
发生的事情是,通过提供 class 正文,您正在创建一个匿名 class 内联来扩展特征。