我在理解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.