我讀這個關於Ruby PROCS:Ruby塊和procs。使用Proc時,你不需要指定第二個參數嗎?
class Monkey
# Monkey.tell_ape { "ook!" }
# ape: ook!
# => nil
def self.tell_ape
tell("ape", &Proc.new)
end
def self.tell(name)
puts "#{name}: #{yield}"
end
end
在該示例以上...的塊被傳遞給.tell_ape
和Proc.new
在塊轉換爲PROC正確?但是... .tell
方法不需要在其方法簽名中接受&block
參數嗎?我們正在將Proc作爲參數傳遞給.tell
方法嗎?如果是的話...... .tell
方法不需要第二個參數嗎?
它不完全等同,因爲第一個版本不需要塊重新指明分數作爲'Proc',實際上所有現有的Ruby實現將*不*分配第一種情況下的Proc對象。 –