我有一系列自定义类。我已经定义了< =>在他们身上,并进行了测试,以确保我的自定义定义表现得如此。我假设我可以调用[] .uniq并让它过滤掉我的副本,但这没有发生。还有其他需要重载的运算符吗?
答案 0 :(得分:3)
Array#uniq
基于相等而非订购,因此您的对象需要回复eql?
。此外,它使用散列来加速性能,因此您还需要实现hash
。
不幸的是,这个合约没有在the documentation中指定,但通常在每本Ruby书或课程中都指定 。
答案 1 :(得分:1)
我需要实现的是.hash