0

私はオブジェクトの配列を持っています:

array = [ Obj1, Obj2, Obj3 ]

テーブルObj1からクエリする場合:Objects

obj1 = Objects.get(1)

Obj1とはobj1同じオブジェクトですが、比較すると次のようになりますfalse

array[0].eql? obj1 # false

メモリ内の同じ場所を指していない 2 つのオブジェクトを比較する最良の方法は何ですか?

4

1 に答える 1

2

実際には、これらの同じタイプのオブジェクトが所有する値のこの種の比較では、独自の比較演算子 like<=>または好きな記号を定義する必要がありますが、 のようなデフォルトの演算子をオーバーライドしないでください==。それは問題につながる可能性があります。

Ruby の等価性とオブジェクトの比較」を参照してください。

于 2013-08-15T14:33:12.160 に答える