如果我有兩個數組a
和b
,包含的對象必須覆蓋哪種方法,這樣減法-
才能正常工作?需要什麼方法讓「 - 」(減法)方法與Ruby數組一起工作?
與eql?
編輯
我添加更多的細節,我的問題是否足夠。
我有這個類中定義:
class Instance
attr_reader :id, :desc
def initialize(id , desc )
@id = id.strip
@desc = desc.strip
end
def sameId?(other)
@id == other.id
end
def eql?(other)
sameId?(other) and @desc == other.desc
end
def to_s()
"#{id}:#{desc}"
end
end
好嗎?
然後我從不同部分填充了我的兩個數組,然後我想獲得差異。
a = Instance.new("1","asdasdad")
b = Instance.new("1","a")
c = Instance.new("1","a")
p a.eql?(b) #false
p b.eql?(c) #true
x = [a,b]
y = [c]
z = x - y # should leave a because b and c "represent" the same object
但是這是行不通的,因爲a
和b
被關押在數組中。我想知道我需要在我的課程中重寫什麼方法才能正常工作。
你能定義「正常工作」嗎?現在,從array1中減去array2,可以刪除array2中存在的任何項目。我想這似乎是預期的效果。 – 2009-12-02 03:31:54
@dcneiner:對於每一個對象? ...我正在定義...讓我把這個問題 – OscarRyz 2009-12-02 03:34:39