This Scala tutorial对于声明没有初始值的变量有以下说法:
如果您没有为变量分配任何初始值,则它的有效性如下:
var myVar :Int;
val myVal :String;
但是,当我在Scala REPL中尝试该代码时,出现以下错误:
scala> var myVar :Int;
<console>:10: error: only classes can have declared but undefined members
(Note that variables need to be initialized to be defined)
var myVar :Int;
^
scala> val myVal :String;
<console>:10: error: only classes can have declared but undefined members
val myVal :String;
为什么是这样?该教程适用于旧版本的Scala吗?
我找不到为教程编写的特定版本的Scala,但是我正在OpenJDK 64位Java 1.8.0_66上运行Scala版本2.11.7。
本教程是否已过时,或者我的环境存在问题?
是否可以在不初始化变量的情况下声明变量(var或val)?
最佳答案
错误是正确的,您只能在抽象类或特征上执行此操作。本教程可能假设您正在抽象类内部编写该代码。
可以将变量初始化为一些默认值:
var i: Int = _
var s: String = _
但这本质上与以下内容相同:
var i: Int = 0
var s: String = null
关于scala - 声明一个没有初始值的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37174687/