有人可以解释以下行为
def iterate
return yield
return "end of iterate"
end
def test_iterate
assert_equal( "end of iterate", iterate { return "end of block" } )
assert_equal( "end of block", iterate { "end of block" } )
end
我知道 Procs (块是什么)应该在它们被调用的范围内返回。(与 lambdas 不同)考虑到这一点,测试中的两个调用都不应该返回“块结束”吗?
该测试通过'ruby 1.8.7(2009-06-12 patchlevel 174)[universal-darwin10.0]'(OSX 10.6.7)