【发布时间】:2011-08-11 22:16:56
【问题描述】:
考虑这段代码:
var unit: Unit = null
unit: Unit = ()
a) 为什么我可以将 null 分配给值类? (见§12.2.3)
b) 为什么null 会转换为()?
【问题讨论】:
-
您在哪里看到
()被转换为null?
标签: class scala null unit-type
考虑这段代码:
var unit: Unit = null
unit: Unit = ()
a) 为什么我可以将 null 分配给值类? (见§12.2.3)
b) 为什么null 会转换为()?
【问题讨论】:
() 被转换为null?
标签: class scala null unit-type
来自 scala 规范第 6.26.1 节:
值丢弃。如果
e有某个值类型并且预期类型是Unit,则e通过嵌入术语{ e ; () }中转换为预期类型。
换句话说,你的代码相当于
var unit: Unit = {null; ()}
unit: Unit = ()
null 没有被转换——它只是被()(预定义的Unit 值)忽略并替换。
【讨论】: