Я думал, что когда вы вызываете proc внутри метода, возвращаемое значение proc вызовет возврат из контекста блока out, вызвавшего proc. Когда я вызываю test(a_block)
, я чувствую, что puts "after the block"
не должен выполняться, так как из процедуры было возвращено значение. Далее... test(a_block)
и test(b_block)
ведут себя точно так же. Я думал, что здесь должна быть разница?
a_block = Proc.new do
puts "in the Proc"
55
end
b_block = lambda do
puts "in the lambda"
66
end
def test(block)
puts "in test"
puts block.call
puts "after the block"
99
end
puts test(a_block)
puts test(b_block)