in?とinclude?について
in?
という、ActiveSupportのメソッドが使いやすいかもしれないと思ったので、書いておきます。
自分が今やっているプロジェクトで使われていたので、調べました。
結果は同じのinclude?と比較します。
include?
まずは、include?からです。
x = [1, 2, 3] y = 1 x.include?(y) → true
xの中にyが含まれているかどうかですね。
in?
x = [1, 2, 3] y = 1 y.in?(x)
inは「...の中に」などの意味があります。 なので、yはxの中に含まれていますか?という風になります。
やってることは一緒なのですが、対象とする位置がずれます。
in?の使い方はこういう風に使えます。
x = [1, 2, 3] y = [1, 3, 6] x.reject{|x| x.in?(y)} →[2]
xを一つづつ出して、yの中に含まれていたら削除するという形です。
こんな感じで使うことができます。
「〜の中」の対象の位置をどこに重きをおくかで、使い分けをすることですね。