Class 为什么我可以将null赋值给一个单位值,为什么它会被转换成()?
考虑以下代码:Class 为什么我可以将null赋值给一个单位值,为什么它会被转换成()?,class,scala,null,unit-type,Class,Scala,Null,Unit Type,考虑以下代码: var unit: Unit = null unit: Unit = () a) 为什么允许我将null赋值给值类?(见§12.2.3) b) 为什么null会从scala规范第6.26.1节转换为()?: 值丢弃。如果e具有某种值类型,且预期类型为Unit,e通过将其嵌入术语{e;()},转换为预期类型 换句话说,您的代码相当于 var unit: Unit = {null; ()} unit: Unit = () null没有被转换——它只是被忽略,并被预定义的单位值替换
var unit: Unit = null
unit: Unit = ()
a) 为什么允许我将null赋值给值类?(见§12.2.3)
b) 为什么
null
会从scala规范第6.26.1节转换为()
?:
值丢弃。如果e
具有某种值类型,且预期类型为Unit
,e
通过将其嵌入术语{e;()}
,转换为预期类型
换句话说,您的代码相当于
var unit: Unit = {null; ()}
unit: Unit = ()
null
没有被转换——它只是被忽略,并被预定义的单位值替换。您在哪里看到()
被转换为null的可能重复?