我正在阅读project的来源,并在那里找到了这样的代码:
private var _responded: Boolean = _
{
_responded = false
}
我不明白为什么他这样写,不是和以下一样:
private var _responded = false
它们之间有什么区别?
答案 0 :(得分:7)
我是该代码的作者。
这样写:
private var _responded = false
在编译时引发此警告(使用旧版本的Scala,似乎没有Scala 2.9的问题):
the initialization is no longer be executed before the superclass is called
您可以谷歌了解该警告以查找更多信息。
答案 1 :(得分:6)
我会在这里猜测,但这看起来很像intellij自动Java到Scala转换所产生的代码。
这个转换器试图尽可能地保持原始Java的语义,因此倾向于生成非常惯用的代码,以及许多嵌套的作用域和可变变量。