我试图将 null 分配给一个 Double 变量,如下所示:
var foo = 0.0
foo = null
但是,这会出现 null 无法隐式转换为 Double 的错误
所以我这样做:
foo = null.asInstanceOf[Double]
然而 foo 的新值是 0.0
如何将值设置为空?
你不能。Double
是值类型,只能赋值null
到引用类型。相反,Scala 编译器替换了null
默认值为 0.0。
请参阅中的默认值SLS 4.2 http://www.scala-lang.org/files/archive/spec/2.11/04-basic-declarations-and-definitions.html:
default type
0 Int or one of its subrange types
0L Long
0.0f Float
0.0d Double
false Boolean
您不能将 Java 原语分配给null
, 任何一个。而 Scala 的Double
并不是真正的原语(它实际上是 Scala 中的一个类),它需要编译为double
在Java字节码中。相反,你应该使用Option[Double]
如果你想表示一个完全缺失的值,并尝试never use null
在斯卡拉。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)