在Scala语言中,使用实例变量之前需要进行初始化。但是,Scala不会为您的变量提供默认值。相反,您必须使用通配符下划线手动设置其值,该下划线就像一个默认值,如下所示。
var name:String = _
我知道,我知道... 我可以在类定义中定义一个构造函数,该构造函数以我们的实例变量作为参数,因此Scala不会强制初始化它,如下所示:
class Person(var name:String)
然而,我需要在类的主体中声明它,因为我需要使用一个Java注解,其ElementType为FIELD或METHOD;也就是说,它只能应用于在类主体中声明的实例变量或方法。问题:为什么Scala语言要求您在类的主体中声明实例变量 - 无论是默认值_还是任何您想要的 - 而不是依赖于默认值?