gpt4 book ai didi

scala - 仅当数组输入的大小为 1 时,函数才返回错误值

转载 作者:行者123 更新时间:2023-12-04 19:56:10 25 4
gpt4 key购买 nike

我有一个用 Scala 编写的函数,它遍历 Option 数组。我希望返回选项不是 None 的第一个索引。我的代码适用于所有长度大于 1 的数组。但是,它不适用于大小为 1 的数组。

这是我现有的代码

def firstSome(): Int = {
for (i <- 0 until this.arr.length - 1) {
this.arr(i) match {
case Some(_) => {
println("Returns")
return i
}
case None => // do nothing
}
}
println("Oops")
return -1
}

由于某些原因,ReturnsOops 都被打印出来了。我原以为该函数会在转到 Some 案例后返回 i ,但不知何故,尽管有 return 语句,它仍会继续。

我还打印了 this.arr 并确认数组中的元素不是 None

知道问题出在哪里吗?

最佳答案

0 until x 是从 0 到 x - 1 的范围。所以你的 for 中有一个 off by one 错误,它应该是正确的:

    for (i <- 0 until this.arr.length) {
...
}

由于在 Scala 中 return 的使用是高度 discouraged ,我想向您指出 find 方法,它正是您要在此处实现的。

关于scala - 仅当数组输入的大小为 1 时,函数才返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56201859/

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