【问题标题】:Why can I assign null to a Unit value and why does it get converted to ()?为什么我可以将 null 分配给 Unit 值,为什么它会转换为 ()?
【发布时间】:2011-08-11 22:16:56
【问题描述】:

考虑这段代码:

var unit: Unit = null
unit: Unit = ()

a) 为什么我可以将 null 分配给值类? (见§12.2.3)

b) 为什么null 会转换为()

【问题讨论】:

标签: class scala null unit-type


【解决方案1】:

来自 scala 规范第 6.26.1 节:

值丢弃。如果e 有某个值类型并且预期类型是Unit,则e 通过嵌入术语{ e ; () } 中转换为预期类型。

换句话说,你的代码相当于

var unit: Unit = {null; ()}
unit: Unit = ()

null 没有被转换——它只是被()(预定义的Unit 值)忽略并替换。

【讨论】:

    猜你喜欢
    • 2011-03-31
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2014-05-31
    • 2018-03-01
    相关资源
    最近更新 更多