簡體   English   中英

proc return vs lambda返回

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM