9
考虑以下代码:为什么我可以将null分配给单位值,为什么它会转换为()?
var unit: Unit = null
unit: Unit =()
一)为什么我允许null分配到一个值类? (见§12.2.3)
b)为什么null
转换为()
?
考虑以下代码:为什么我可以将null分配给单位值,为什么它会转换为()?
var unit: Unit = null
unit: Unit =()
一)为什么我允许null分配到一个值类? (见§12.2.3)
b)为什么null
转换为()
?
从阶指定部6.26.1:
值丢弃。如果
e
具有某种值类型,并且预期类型为Unit
,则e
将通过将其嵌入到术语{ e ;() }
中而转换为预期类型。
换句话说,你的代码就相当于
var unit: Unit = {null;()}
unit: Unit =()
的null
不转换 - 它是由()
,预定义的Unit
值只是忽略和替代。
[Scala:为什么我可以将Int转换为单位?](http://stackoverflow.com/questions/3513364/scala-why-can-i-convert-int-to-unit) – 2011-04-24 17:10:49
哪里可以你看到'()'被转换为空? – 2011-04-24 17:11:13