簡體   English   中英

Ruby:將Proc傳遞給無參數的方法

[英]Ruby: Passing a Proc to method with no parameters

所以這可行(從Code-Academy拉出):

def greeter
  yield
end

phrase = Proc.new {
  puts "Hello there!"
  }

greeter(&phrase)

我了解產量在做什么,並且了解Proc在做什么。 但是“為什么”被允許?

IE: greeter方法沒有定義參數,甚至沒有可選參數。 那么為什么紅寶石能讓我們傳遞一些東西呢? (在這種情況下,對代碼塊的引用(Proc phrase )。

我的意思是這樣做很棒,但是從規則上來說,這似乎不應該被允許嗎?

&phrase不是參考。 它是用於顯式傳遞塊的Ruby注釋。 在這里,它將proc轉換為方法調用的隱式塊。 由於每個方法都接受默認塊作為參數,因此您的代碼有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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