请在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}
这是如何允许的?
答案 0 :(得分:5)
正在发生的事情是,通过提供一个类体,您正在创建一个扩展该特征的匿名类内联。
答案 1 :(得分:4)
使用类主体{}
可以正常工作。
val a = new A {}