【发布时间】:2014-02-04 15:48:03
【问题描述】:
为什么该方法在 NetBeans 中会出现编译错误
(有问题的错误 - 发现单元类型不匹配:必需的 Array[Int])
def createArray(n:Int):Array[Int] =
{
var x = new Array[Int](n)
for(i <- 0 to x.length-1)
x(i) = scala.util.Random.nextInt(n)
}
我知道如果有 if 子句 - 而没有 else 子句 - 那么为什么我们会得到类型不匹配。
但是,我无法解决上述错误 - 除非我添加此行
返回 x
错误没有发生,因为编译器认为如果 n
想法?
【问题讨论】:
-
函数中的最后一条语句
for返回Unit,但返回类型为Array[Int]。因此错误。所以只需将x作为函数中的最后一条语句。在下面查看@Lee 的答案。