心に訴えるガイドでは、このredo
キーワードの例が示されています。
class LotteryTicket
def self.new_random
new(rand(25) + 1, rand(25) + 1, rand(25) + 1)
rescue ArgumentError
redo
end
end
new
3 つの乱数がすべて一意になるまで、呼び出しを続けることになっています。しかし、このコードを入力して数回実行した後、次のエラーが発生しました: LocalJumpError: unexpected redo
. 他の場所でキーワードを調べたredo
ところ、ループとイテレータでのみ機能するようです。では、なぜ彼の例でこのように使用しようとしたのですか? このメソッドを正しく動作させるには、どのように書き直す必要がありますか?