我的问题是理解是Scala的语法.我来自Java背景.我试图创建一个与它所在的类相同类型的变量.示例:
class Exp {
var exp1: Exp;
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Driver.scala:4: error: class Exp needs to be abstract, since variable exp1 is not defined
(Note that variables need to be initialized to be defined)
class Exp {
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么我不能这样做吗?我是这门语言的新手.任何解释都有助于更好地理解它.
Jam*_*Iry 17
因为你需要初始化它.否则编译器认为您只需要变量的接口:getter和setter方法.这与没有身体的方法是抽象的非常类似.下面将它初始化为null并为您提供一个具体变量的有效具体类.
class Exp {
var exp1: Exp = _;
}
Run Code Online (Sandbox Code Playgroud)
这种_的使用意味着"默认值",其中对于引用类型,默认值为null,对于非引用类型,默认值为0,false或类似值.