Как и этот вопрос:
Функциональный код для цикла с ранним выходом
Скажите, что код
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 имеет оператор возврата; требуется тип результата
Я знаю, что find() будет лучше в этом случае, я просто изучаю и изучаю язык. И в более сложном случае с несколькими итераторами я думаю, что поиск с помощью может действительно быть полезным.
Спасибо комментаторам, я заработаю щедрость, чтобы компенсировать плохую постановку вопроса:)