【发布时间】:2013-08-04 20:06:13
【问题描述】:
我找到了this explanation,了解如何使用 lazy val 将覆盖的成员值传播到超类构造函数。不幸的是,这篇文章没有解释为什么会这样。
我知道非惰性值不能被分配两次,因此,在超级构造函数中没有可用的值,因为必须跳过超级类构造函数中的值分配才能不将变量锁定为另一个值。但是,println 语句(在超级构造函数中执行,即在分配新的惰性值之前)如何知道这个新值?我是否对执行顺序感到困惑?还是 println 只是在构造对象后才评估它的参数?
【问题讨论】:
标签: scala constructor lazy-evaluation