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