У меня есть функция, которую я написал в Scala, которая перебирает массив Option
s.Я хочу вернуть первый индекс, для которого опция не 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
}
По некоторым причинами Returns
, и Oops
распечатаны.Я думал, что функция вернет i
после перехода к случаю Some
, но каким-то образом она продолжается, несмотря на оператор return.
Я также распечатал this.arr
и подтвердил, что элемент внутри массива не None
.
Есть идеи, в чем проблема?