我想在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
答案 0 :(得分:4)
Null是所有引用类型的子类型;它唯一的例子是空引用。由于Null不是值类型的子类型,因此null不是任何此类型的成员。例如,无法将null赋给scala.Int类型的变量。 另一方面,String是AnyRef的子类型,允许将null指定为值。 对于层次结构reference