0

我有一个对象数组:

array = [ Obj1, Obj2, Obj3 ]

如果我Obj1Objects表中查询:

obj1 = Objects.get(1)

两者Obj1obj1都是相同的对象,但是当我比较它们时,我得到false

array[0].eql? obj1 # false

当两个对象没有指向内存中的同一位置时,比较两个对象的最佳方法是什么?

4

1 回答 1

2

实际上,对于这些相同类型的对象所拥有的值的这些类型的比较,您需要定义自己的比较运算符 like<=>或任何您喜欢的符号,但不要覆盖默认运算符 like ==。这可能会导致问题。

请参阅“ Ruby 等式和对象比较”。

于 2013-08-15T14:33:12.160 回答