gpt4 book ai didi

Scala - 发现类型不匹配的单元 : required Array[Int]

转载 作者:行者123 更新时间:2023-12-03 23:16:38 26 4
gpt4 key购买 nike

为什么该方法在 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 <= 0 会发生什么
我尝试使用 n = 10 作为硬编码编写函数

想法?

最佳答案

您的 for理解将被转换成类似的东西:

0.to(x.length - 1).foreach(i => x(i) = scala.util.Random.nextInt(i))

foreach返回 () ,你的结果 for领悟是 () ,所以整个函数的结果是 ()因为它是最后一个表达式。

您需要改为返回数组 x:
for(i <- 0 to x.length-1)
x(i) = scala.util.Random.nextInt(n)
x

关于Scala - 发现类型不匹配的单元 : required Array[Int],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com