У меня возникли проблемы с пониманием того, как return
работает в блоках, procs и lambdas.
Например, в следующем случае, почему работает batman_ironman_proc
, а batman_yield
выдает ошибку?
def batman_ironman_proc
victor = Proc.new { return "Batman will win!" }
victor.call
"Iron Man will win!"
end
def batman_yield
yield
"Iron man will win!"
end
victor = Proc.new { return "Batman will win!" }
puts batman_ironman_proc
#batman_yield(&victor) === This code throws an error.