두 배열 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에있는 array1의 모든 항목이 제거됩니다. 나는 그것이 원하는 효과라고 생각합니다. –
@dcneiner : 모든 개체에 대해? ... 나는 정의 중입니다 ... 질문에 넣으십시오. – OscarRyz