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