结合Ruby中的许多if条件

时间:2013-09-20 17:11:34

标签: ruby

只是想知道,还有更好的方法来写这个:

if key != "a" && key != "b" && key != "c"
  ...
end

或许连接上述条件?

7 个答案:

答案 0 :(得分:5)

unless ["a", "b", "c"].include?(key)
    # ...
end

答案 1 :(得分:4)

case key
when "a", "b", "c"
else
  ...
end

答案 2 :(得分:4)

unless %w(a b c).include?(key)
  # ...
end

答案 3 :(得分:1)

尝试Array#include

if not ["a", "b", "c"].include? key
  ...

更简洁一点。

答案 4 :(得分:1)

一种方法是使用include:

if !%w(a b c).include?(key) then
  ...
end

答案 5 :(得分:1)

if %w( a b c ).exclude?(key)
  ...
end

来自active_support

答案 6 :(得分:0)

unless key[/[abc]/]
  ...
end

...但我更喜欢sawa的答案以便于阅读。