Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 为什么我可以将null赋值给一个单位值,为什么它会被转换成()?_Class_Scala_Null_Unit Type - Fatal编程技术网

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的可能重复?