为什么不能在scala中以null初始化int



我想在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

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

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

有人知道原因吗?

注意 - 我正在使用Scala 2.11.8

null是所有参考类型的子类型;它唯一的实例是null引用。由于NULL不是价值类型的亚型,因此NULL不是任何此类类型的成员。例如,不可能将null分配给scala.int类型的变量。另一方面,字符串是AnyRef的子类型,它允许将null分配为值。层次结构参考

最新更新