次のコードがあります
def my_function(condition: Int=>Boolean): Int = {
for (i <- 0 to 10)
if (condition(i)) return i
return -1
}
コードは単純です: condition
1 から 10 までの数値が一致する場合はその数値を返し、そうでない場合は無効な結果 (-1) を返します。
return
これは完全に正常に動作しますが、サイクル内にあるため、関数型プログラミングの原則の一部に違反していfor
ます。このメソッドをリファクタリングして (単体テストも取得しました)、return ステートメントを削除するにはどうすればよいですか。を使用する必要があると思いますがyield
、リストが生成されるようです。必要な値は1つだけです。