在Ruby 1.8(我的版本是1.8.7-72),此代碼:在裏面紅寶石爲返回拉姆達崩潰內環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
爲什麼不能將範圍擴展到lambda?我不能簡單地跳出循環,因爲在我原來的場景中,for循環後面有代碼,我需要跳過 – user102008 2009-07-05 07:27:20
您可以嘗試使用真實的方法,而不是lambda。 – 2009-07-05 15:17:38