我对 Scala 完全陌生。在这里,我尝试将一个空数组分配给一个变量,它成功了。但是,当我尝试将整数元素附加到变量时,出现如下错误:
var c=Array()
c: Array[Nothing] = Array()
scala> c=Array(1)
<console>:8: error: type mismatch;
found : Int(1)
required: Nothing
c=Array(1)
^
这是什么原因?
当你这样做时var c = Array()
,Scala 计算类型为Array[Nothing]
,因此你不能用Array[Int]
. 你可以做的是:
var c : Array[Any] = Array()
c = Array(1)
或者
var c : Array[Int] = Array()
c = Array(1)
Nothing
是 Scala 类型层次结构的底层类型。它是所有其他类型的子类型。请参阅文档。
如果您不决定要将哪种类型的值添加到空数组中,则声明:
var c : Array[Any] = Array()
c = Array(1)
如果您正在决定数据类型,那么您声明为:
var c : Array[Int] = Array()
c = Array(1)