:1.8
foo = lambda do
for j in 1..2
return
end
end
foo.call
クラッシュLocalJumpError
有する:
test2.rb:3: unexpected return (LocalJumpError)
from test2.rb:2:in `each'
from test2.rb:2
from test2.rb:6:in `call'
from test2.rb:6
なぜこれはこれをしますか?しかし、それはRuby 1.9の私のバージョンで正常に動作するようです。
編集:ラムダの中に戻るだけではありません。次のように動作します。
foo = lambda do
return
end
foo.call
代わりにラムダの範囲を指定できないのはなぜですか?元のシナリオでは、私はスキップする必要があるforループの後にコードがあるので、ループから抜け出すことはできません – user102008
ラムダではなく、実際の方法を試すことができます。 –
Damn。 Ruby 1.8では、define_methodで定義されたメソッドの内部からproc内からの戻りは許可されません。それを傷つける。 –