20

除非我一直做错。看起来我们不能做这样的事情:

var x;
x = 1;

在 Scala 中,但您必须声明并为其赋值。为什么会这样?

4

1 回答 1

27

显而易见的原因是帮助不要让变量未初始化。请注意,在没有初始化的声明中,您还需要指定类型。

var x: Type;

给出以下错误:

只有类可以有声明但未定义的成员(注意变量需要初始化才能定义)

实际上只有抽象类可以声明成员而不定义它们。您仍然可以获得所需的行为(变量初始化为默认值)为

var x: Type = _

如果Type是引用类型,x则为null. 例如,在工厂方法在对象构造之后完成对象的初始化的情况下,这种情况很有用。

于 2013-07-08T16:14:04.427 回答