ruby – 如何尽可能简洁地说“如果x == A或B或C”?

前端之家收集整理的这篇文章主要介绍了ruby – 如何尽可能简洁地说“如果x == A或B或C”?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很确定 ruby有一个习惯用法.

我说的代码中有太多的地方

if (x == A) || (x == B) || (x ==C)
  do_something
else
  do_something_else
end

我知道我也可以

case x
when A,B,C
   do_something
else
   do_something_else
end

但我更喜欢使用if else,如果有一个很好的成语,使它更简洁.

解决方法

你可以更像这样整理你的案例陈述
case x
when A,C then do_something
else do_something_else
end

或者如果它是重复模式,则将其滚动到Object上的方法

class Object
  def is_one_of?(*inputs)
    inputs.include?(self)
  end
end

然后用它作为

if x.is_one_of?(A,C)
  do_something
else
  do_something_else
end

猜你在找的Ruby相关文章