1

我常用[1, 2, 3].include? foo成语。这本身并没有什么问题,但是为了可读性,能够编写foo.is_in? [1, 2, 3]. 核心或标准库是否有方法可以做到这一点?

4

2 回答 2

1

不,标准中没有这种方法。自己实现它:

class Object
  def is_in? a
    return a.include?(self)
  end
end

请注意,在上面的代码中,我从不检查 a 的类型,因此如果include?未为 a 定义,则会出现错误。

于 2013-03-06T16:07:10.893 回答
0

与您想要的方式不完全相同,但您可以重写它

if [1, 2, 3].include? foo
  do_this
else
  do_that
end

对此:

case foo; when 1, 2, 3
  do_this
else
  do_that
end
于 2013-03-06T16:32:23.543 回答