Scala:为什么在声明期间需要为var / val赋值

时间:2013-07-08 16:09:24

标签: scala declaration

除非我做错了。我们似乎无法做到这样的事情:

var x;
x = 1;
在Scala中

,而是你必须声明并为其赋值。为什么会出现这种情况有什么原因吗?

1 个答案:

答案 0 :(得分:27)

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

var x: Type;

给出以下错误:

  

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

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

var x: Type = _

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