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 の型をチェックしていないので、a に がinclude?定義されていない場合はエラーが発生することに注意してください。

于 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 に答える