[英]proc return vs lambda return
為什么在調用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是一種匿名方法。 由於它是一個方法,因此它返回一個值,並且調用它的方法可以使用它所需的任何值,包括忽略它並返回一個不同的值。
Proc就像粘貼在代碼片段中。 它不像一種方法。 因此,當在Proc中發生返回時,這只是調用它的方法的代碼的一部分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.