在Ruby中,使用any方法返回一个值

时间:2017-08-01 18:53:57

标签: ruby

我用的是什么?检查数组中某些内容的方法,例如(简化示例,实际情况更复杂)

%w{ant bear cat}.any? {|word| word == 'cat'}

它将返回true。但是,如果我希望实际比赛返回怎么办?例如"猫"以上?我想过用这样的东西:

%w{ant bear cat}.any? {|word| (@x=word) == 'cat'}

但它看起来并不好看。

2 个答案:

答案 0 :(得分:3)

在这种情况下,使用select返回等于' cat'或find返回第一个元素等于' cat':

p %w{ant bear cat}.find {|word| word == 'cat'}
# => "cat"

p %w{ant bear cat}.select {|word| word == 'cat'}
# => ["cat"]

答案 1 :(得分:2)

%w{ant bear cat}.find {|word| word == 'cat'}
# => "cat"