この質問のように:
コードが
def findFirst[T](objects: List[T]):T = {
for (obj <- objects) {
if (expensiveFunc(obj) != null) return /*???*/ Some(obj)
}
None
}
Scalaでこのようなforループから単一の要素を生成するにはどうすればよいですか?
元の質問で提案されているように、findを使用したくありません。forループを使用して実装できるかどうか、またどのように実装できるかについて興味があります。
* アップデート *
まず、すべてのコメントに感謝しますが、私は質問で明確ではなかったと思います。私はこのようなものを狙っています:
val seven = for {
x <- 1 to 10
if x == 7
} return x
そして、それはコンパイルされません。2つのエラーは次のとおりです。-メソッド定義の外部に戻る-メソッドmainにreturnステートメントがあります。結果タイプが必要
この場合、find()の方が優れていることはわかっています。私は、言語を学習して探索しているだけです。また、複数のイテレータを使用するより複雑なケースでは、forを使用して検索することが実際に役立つと思います。
コメント投稿者に感謝します、私は質問の悪いポーズを補うために賞金を始めます:)