上級 › Proc.new の中で return すると LocalJumpError になることがある › パターン1
Proc.new の中で return すると LocalJumpError になることがある
Proc(Proc.newやKernel#proc)の中でreturnを使うと、そのProcを囲んでいたメソッドから抜けようとします。
1 def make_greeter 2 ________________________ ^ 3 end 4 5 greet = make_greeter 6 puts greet.call
main.rb:2:in `block in make_greeter': unexpected return (LocalJumpError)
from main.rb:6:in `<main>'
空欄を埋めて実行を通す
Procの中のreturnは、Procを定義したメソッドから抜けようとします。呼び出す時点でそのメソッドはすでに終わっているため、戻り先が無くLocalJumpErrorになります。
次の問題