为什么Proc in 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"
。
原因是什么?
答案 0 :(得分:2)
您应该在此回答https://stackoverflow.com/a/723/4576274中看到评论。
说明
lambda是一种匿名方法。因为它是一个方法,它返回一个 值,以及调用它的方法可以随意使用它, 包括忽略它并返回不同的值。
Proc就像 粘贴在代码段中。它不像一种方法。所以当一个 返回发生在Proc中,这只是代码的一部分 叫它的方法