Я думал, что когда вы вызываете proc в методе, возвращаемое значение proc вызывает возврат из контекста блока out, который вызвал proc.Когда я звоню test(a_block)
, я чувствую, что puts "after the block"
не должен выполняться, поскольку было возвращаемое значение из proc.Далее ... 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)