Scala 声明一个没有初始值的变量
关于声明没有初始值的变量,有如下说明: 如果未为变量指定任何初始值,则该变量有效,如下所示:Scala 声明一个没有初始值的变量,scala,Scala,关于声明没有初始值的变量,有如下说明: 如果未为变量指定任何初始值,则该变量有效,如下所示: 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
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>var-myVar:Int;
:10:错误:只有类可以有已声明但未定义的成员
(注意,需要初始化变量才能定义)
var-myVar:Int;
^
scala>val-myVal:String;
:10:错误:只有类可以有已声明但未定义的成员
val-myVal:字符串;
为什么会这样?本教程适用于较旧版本的Scala吗?我找不到编写本教程的Scala的特定版本,但我正在OpenJDK 64位Java 1.8.066上运行Scala 2.11.7版
- 是教程过时了,还是我的环境有问题
- 是否可以在不初始化的情况下声明变量(var或val)
var i: Int = _
var s: String = _
但这基本上与:
var i: Int = 0
var s: String = null
这些“默认”值来自哪里?是否取决于类型?scala编译器是否定义了基本类型(如
String
)的默认值?回答我自己的问题,我想所有AnyRef
都默认为null
,并且AnyVal
必须以某种方式定义其默认值(仍然不知道在哪里发生这种情况).var i:Int=\也给了我一个错误:局部变量必须是initialized@KiranM您使用的是什么版本的scala?@Alvaro-我使用的是scala 2.11.0