创建一个 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 内联来扩展特征。