私はこのメソッドの周りに私の頭を包んでいるように見えることはできません。このコードを理解しようとすると、アイテムが繰り返し処理され、2回インデックスされるので、配列の2回の繰り返しがあると言います。両方のインデックスのコレクションが同じ場合、両方のアイテムのコレクションが同じ場合はtrueを返します。私はこの "重複"を理解したいですか?メソッド
def duplicates?(array1)
array1.each_with_index do |item1, index1|
array1.each_with_index do |item2, index2|
next if index1 == index2
return true if item1 == item2
end
end
false
end
明らかに私は間違っています。そうでなければ、メソッドは常にtrueを返します。どのように私は間違っていますか?
ルビーについては何も考えていませんが、私はそのアイデアは次のようだと思います。各要素について、等しいかどうかをお互いにチェックしてください。 1つがある場合:Trueを返します。重複がある(つまり、停止アルゴリズム、つまりバイナリチェックであり、関数名の?が認識できる)ことを意味します。その他:続行します。すべてのチェックが成功した場合は、false = no dupesを返します。 – sascha