这组变量很方便..
var lastName: String = _
var address: Address = _
但它将它们设置为null - scala中的一个大禁忌..
下面这部分是scala惯用的..
var lastName = None: Option[String]
var address = None: Option[Address]
但是额外的打字不是最佳的。
选项的任何自动化 - 以充分利用这两种情况?
答案 0 :(得分:4)
这会让你感觉更好吗?
var lastName: Option[String] = None
var address: Option[Address] = None
或
object none {
def apply[T]: Option[T] = None
}
var lastName = none[String]
var address = none[Address]
答案 1 :(得分:3)
您可以使用scalaz
中的none
方法:
import scalaz.std.option.none
var lastName = none[String]
var address = none[Address]
如果您不想使用scalaz
:
def none[T]: Option[T] = None
some
中还有方法scalaz
,返回Option
:
import scalaz.syntax.std.option._
1.some
// res0: Option[Int] = Some(1)
作为Régis Jean-Gilles noted,还有Option.empty
。您可以直接使用它:
var address = Option.empty[Address]
或导入它并使用上面的none
:
import Option.{empty => none}
var address = none[Address]