这更像是一个语义问题而不是其他任何问题。
我想检查一个变量是否是两个值之一。最简单的方法是:
if var == "foo" || var == "bar"
# or
if var == 3 || var == 5
但这对我来说并不是很干涩。我知道我可以使用String.match()
,但这对非字符串变量不起作用,速度慢三倍。
是否有更好的方法可以针对两个值检查变量?
答案 0 :(得分:14)
将所有值放入数组中然后应该很容易。
%w[foo bar].include?('foo') # => true
[3,5].include?(3) # => true
答案 1 :(得分:5)
case
语句似乎可以做你想要的。
case var
when "foo", "bar" then case1()
end
case var
when 3, 5 then case2()
end
基于数组的方法似乎比这慢。
答案 2 :(得分:1)
你可以这样做:
%W(foo bar baz).include? var
或者:
[3, 5].include? var