我认为解释这一点的最好方法是举个例子:
class A
attr_accessor :test
def initialize(x = nil)
@test = x
end
def ==(other)
return @test == other.test
end
end
a1 = A.new(1) # => #<A:0x11b7118 @test=1>
a1.test # => 1
a2 = A.new(1) # => #<A:0x11fb0f8 @test=1>
a2.test # => 1
a1 == a2 # => true
[a1].include?(a2) # => true
[a1] - [a2] # => [#<A:0x11b7118 @test=1>]
在这个例子中,我如何让 [a1] - [a2] 返回一个空数组,就像人们期望它为任何其他 Ruby 类一样?是否有一些我必须为我缺少的 A 定义的方法?