我正在进行一些探索。关于Ruby的
.find(ifnone = nil) { |obj| block }方法:从阅读文档中,我认为你可以传递一个作为参数的方法,当指定条件没有匹配时,该方法将被执行。
文档中说:
"如果指定了ifnone,则调用它并返回其结果;否则返回
nil
。"
这似乎适用于任何已经返回nil的方法,例如:
def message puts 'No match.' end
No match.
=>nil
如果我使用一个会返回结果的方法,例如:
def message p 'No match.' end
那么我会得到:
"No match."
NoMethodError: undefined method `call' for "No match.":String
请问有人能够详细解释一下在这里传递给find方法的是什么类型的参数/方法吗?谢谢。