为什么在Scala中无法将Int初始化为null?

时间:2017-03-14 08:23:28

标签: scala

我想在Scala中将Int类型的变量初始化为null,但我无法这样做 -

scala> val a: Int = null
<console>:11: error: an expression of type Null is ineligible for implicit conversion
   val a: Int = null

但我可以在Scala中将String类型的变量初始化为null

scala> val a: String = null
a: String = null

有人知道它的原因吗?

注意 - 我正在使用Scala 2.11.8

1 个答案:

答案 0 :(得分:4)

Null是所有引用类型的子类型;它唯一的例子是空引用。由于Null不是值类型的子类型,因此null不是任何此类型的成员。例如,无法将null赋给scala.Int类型的变量。 另一方面,String是AnyRef的子类型,允许将null指定为值。 对于层次结构reference