鉴于以下课程:
scala> class Foo(x: Int) {}
defined class Foo
extend
使用其字段/方法object
是否可以scala> object Bar extends Foo(f) {
| lazy val f = 100
| }
<console>:8: error: not found: value f
object Bar extends Foo(f) {
^
Foo ?
{{1}}
答案 0 :(得分:5)
要跟进我的评论,是的,这是可能的,这要归功于Scala的早期初始化语法:
object Bar extends {
val f = 100
} with Foo(f)
如果f
很懒,这不会起作用,但鉴于Foo
的构造函数是按值计算的,这里没有任何真正的区别,无论如何