我找不到这个叫做什么来了解它的工作原理和工作方式,但我们发现你可以这样做:
Person = Struct.new(:name)
people = [Person.new('foo'), Person.new('bar')]
# => [#<struct Person name="foo">, #<struct Person name="bar">]
people.find { |person| person.name == 'baz' }
# => nil
people.find(->{ [] }) { |person| person.name == 'baz' }
# => []
我想当某些东西返回nil时,它会成为一个漏洞,但也许有人可以说明它是如何工作的?
答案 0 :(得分:3)
find(ifnone = nil){| obj | block}→obj或nil
find(ifnone = nil)→an_enumerator
将枚举中的每个条目传递给阻止。返回第一个块不为false的块。如果没有对象匹配,调用ifnone并返回 指定时的结果,否则返回nil。
如果没有给出阻止,则返回枚举器。