使用index方法,我尝试使用某个变量来查找某个值是否存在,如果该变量不存在,则尝试另一个变量;类似于下面的第三行:
a = [ "a", "b", "c" ]
a.index("b") #=> 1
a.index("z" or "y" or "x" or "b") #=> 1
…表示如果在数组中找不到“z”,则尝试“y”;如果找不到y,则尝试x;如果找不到x,则尝试b
我该怎么做才能正确?
最佳答案
蒂莫特迪但我更喜欢使用数组注入。
%w(x y z b).inject(nil) { |i, e| i or a.index(e) } #=> 1
还有一种方法可以用更类似于伪代码的代码来实现这一点。
class String
def | other
->(e) { self==e || other==e }
end
end
class Proc
def | other
->(e) { self.call(e) || other==e }
end
end
a.index(&('x' | 'y' | 'z' | 'b')) #=> 1
关于ruby - Ruby:将“index”方法与“OR”一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2158964/