我想知道为什么我不能从这个区块返回:
[1,2].each { |e| return e } # => LocalJumpError: unexpected return
虽然这些工作:
[1,2].each { |e| Proc.new {return e} } # => [1, 2]
[1,2].each { |e| lambda {return e} } # => [1, 2]
希望有人能解释。
答案 0 :(得分:2)
您可以在Ruby中使用块内的return。它将从封闭方法返回。在这种情况下,没有封闭方法,这就是为什么会出现错误,这不是因为块中的返回是非法的