过程返回与 lambda 返回



为什么在调用Proc的方法中执行剩余代码之前,Ruby中的Proc返回?

def hello
  a = Proc.new{ return }
  a.call
  puts "Hello"
end

def proc
  hello
  puts "Proc"
end

在这里return将跳过puts "Hello",只打印puts "Proc"

lambda打印也puts "Hello"

这是什么原因呢?

您应该在此答案中看到评论 https://stackoverflow.com/a/723/4576274。

它指出

lambda 是一种匿名方法。由于它是一个方法,因此它返回一个值,调用它的方法可以随心所欲地使用它,包括忽略它并返回不同的值。

一个过程就像粘贴代码片段。它不像一种方法。所以当一个返回发生在 Probe 中,这只是调用它的方法

相关内容

  • 没有找到相关文章

最新更新