4
如何预先初始化val并在Scala中扩展类?Scala:在扩展类的同时预先初始化val
如:
object Start {
def main(args: Array[String]): Unit = {
new T()
new T2()
//T3?
}
}
class T extends{val z = 10} with X with Y
class T2 extends X with Y {val z=10}
//class T3 extends{val z = 10} ??? Z with X with Y //????
class Z
trait X {
val z :Int
}
trait Y { this :X =>
println("Test: "+z)
}
酷 - 我正要张贴了一堆垃圾约把VAL在中间类,或使用DelayedInit。甚至不知道早期的成员定义是一件事情。 – Nick 2013-05-02 21:48:45
T已经做早期成员定义又名。预先初始化一个值,但它并没有跨越我的想法使用'与Clazz'。斯卡拉称赞一致性在这里有一个划痕。 – 2013-05-03 01:35:28
@StefanK。恕我直言,不是真的。它总是'extend',后面跟着'with'。与Java不同,'extend'不能用于类,你也可以编写'class A extends SomeTrait'。 – gzm0 2013-05-03 14:40:53