Как получить один элемент из цикла for в Scala?
Очень похоже на этот вопрос:
Функциональный код для зацикливания с ранним выходом
Скажи код
def findFirst[T](objects: List[T]):T = {
for (obj <- objects) {
if (expensiveFunc(obj) != null) return /*???*/ Some(obj)
}
None
}
Как получить один элемент из цикла for, как это в Scala?
Я не хочу использовать find, как предложено в исходном вопросе, мне интересно, если и как это может быть реализовано с помощью цикла for.
* ОБНОВИТЬ *
Во-первых, спасибо за все комментарии, но я думаю, что я не был ясен в вопросе. Я снимаю что-то вроде этого:
val seven = for {
x <- 1 to 10
if x == 7
} return x
И это не компилируется. Две ошибки: - возврат за пределы определения метода - метод main имеет оператор return; нужен тип результата
Я знаю, что find () будет лучше в этом случае, я просто изучаю и изучаю язык. И в более сложном случае с несколькими итераторами, я думаю, что поиск с for может быть действительно полезным.
Спасибо, комментаторы, я начну вознаграждение, чтобы восполнить плохую постановку вопроса :)