2011-07-08 24 views

回答

5

从编程Scala中:

场 的初始值设定“= _”分配一个零值到该字段。 零值取决于该字段的 类型。数字类型为0,布尔值为假 ,参考 类型为null。这与在不使用 初始化程序的Java中定义相同的 变量相同。需要注意的是,你不能简单地 离开关“= _”初始化 斯卡拉... [它]将宣布一个抽象的变量,而不是一个未初始化的上述一个

所以你的代码是一样的

class Foo() { 

var bar: Long = 0 
var jaz: String = null 
} 

Kim的答案听起来是正确的 - 如果一个字段是可选的,使它成为一个选项,如果没有,使构造函数设置它。

6

使用Option使该类的用户清楚该值是可选的。在Scala中不鼓励使用null,会让其他开发人员感到惊讶。它也不会在该类型中“显示”。如果该字段不是可选的,则不要使用Option并设置字段构造器参数。不要提供一个构造函数,它会在创建后让对象处于无效状态。

相关问题