将变量与Ruby中的两个不同值进行比较

时间:2010-01-14 03:39:18

标签: ruby

这更像是一个语义问题而不是其他任何问题。

我想检查一个变量是否是两个值之一。最简单的方法是:

if var == "foo" || var == "bar"
# or
if var == 3     || var == 5

但这对我来说并不是很干涩。我知道我可以使用String.match(),但这对非字符串变量不起作用,速度慢三倍。

是否有更好的方法可以针对两个值检查变量?

3 个答案:

答案 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