我在Scala示例中发现了以下用法,但我找不到合适的引用(可能是因为Google被new
和with
混淆了,这是非常常见的词......) :
var someInstance = new Class with SomeTrait
在关于特征的基本文档中,我找不到任何东西......
答案 0 :(得分:1)
嗯......它是一种创建Anonymous类实例的方法。
所以,
trait A
trait B
class C extends A
val cb = new C with B
// creates an instance of anonymous class 'C with B'
与
相同trait A
trait B
class C extends A
class D extends C with B
val d = new D
// creates an instance of class 'D'
现在,cb
和d
都具有相同的属性。