scala:将None设置为Option

cos*_*osa 2 scala

我试图设置变量foo初始化var foo = Some(0.0),None但我得到了None.type doesn't conform to expected type Some[Double].指定变量没有值的正确方法是什么?

Yuv*_*kov 7

因为foo就是Some[Double],你不能分配None.type给它,因为它们是不同类型的(它并不重要,他们都有一个共同的基础).为了让您能够做到这一点,你需要显式声明的类型fooOption[Double]:

scala> var foo: Option[Double] = Some(0.0)
foo: Option[Double] = Some(0.0)

scala> foo = None
foo: Option[Double] = None
Run Code Online (Sandbox Code Playgroud)

或使用Option.apply:

scala> var foo = Option(0.0)
foo: Option[Double] = Some(0.0)

scala> foo = None
foo: Option[Double] = None
Run Code Online (Sandbox Code Playgroud)