分配scala空数组

时间:2012-10-19 07:05:01

标签: scala scala-2.8

我对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)
           ^

这是什么原因?

2 个答案:

答案 0 :(得分:11)

当您执行var c = Array()时,Scala会将类型计算为Array[Nothing],因此您无法使用Array[Int]重新分配该类型。你能做的是:

var c : Array[Any] = Array()
c = Array(1)

var c : Array[Int] = Array()
c =  Array(1)

答案 1 :(得分:0)

Nothing是Scala类型层次结构的底部类型。它是其他所有类型的子类型。参见documentation

如果您不确定要添加哪种类型的值,请声明:

var c : Array[Any] = Array()
c = Array(1)

如果要确定数据类型,则声明为:

var c : Array[Int] = Array()
c =  Array(1)