1

只是想知道,任何更好的方式来写这个:

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

也许连接上述条件?

4

7 回答 7

5
unless ["a", "b", "c"].include?(key)
    # ...
end
于 2013-10-23T10:47:48.503 回答
4
case key
when "a", "b", "c"
else
  ...
end
于 2013-09-20T17:16:08.147 回答
4
unless %w(a b c).include?(key)
  # ...
end
于 2013-09-20T17:18:18.750 回答
1

尝试Array#include

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

简洁一点。

于 2013-09-20T17:13:49.773 回答
1

一种方法是使用包括:

if !%w(a b c).include?(key) then
  ...
end
于 2013-09-20T17:14:20.953 回答
1
if %w( a b c ).exclude?(key)
  ...
end

active_support

于 2013-09-20T17:17:25.807 回答
0
unless key[/[abc]/]
  ...
end

...但我更喜欢sawa的可读性答案。

于 2013-09-20T18:46:31.133 回答