Ruby:将Proc传递给没有参数的方法

时间:2018-04-19 16:50:55

标签: ruby

所以这项工作(从Code-Academy拉出来):

CSSMERR_CSP_INVALID_KEY

我理解产量正在做什么,并了解Proc的作用。然而,“为什么”这是允许的?

IE:def greeter yield end phrase = Proc.new { puts "Hello there!" } greeter(&phrase) 方法没有定义参数,甚至没有定义参数。那么为什么红宝石允许我们传递一些东西呢? (在本例中是对代码块的引用(Proc greeter)。

我的意思是它确实很棒,但从规则角度看这似乎不应该被允许?

1 个答案:

答案 0 :(得分:2)

1524153770.26不是参考。它是用于显式传递块的Ruby注释。这里,它将proc转换为方法调用的隐式块。由于每个方法都接受一个默认块作为参数,因此您的代码可以正常工作。