나는 사용자 정의 클래스 Instruction
을 보유하고 있습니다. 인스턴스는 배열로 초기화되고 수집됩니다. 중복 된 (모든 인스턴스 변수가 동일한) 인스턴스가 있으며이를 필터링하려고합니다.배열 (Ruby)의 고유 한 객체 인스턴스
class Instruction
attr_accessor :date, :group, :time
def initialize(date, group, time)
@date, @group, @time = date, group, time
end
end
instructions = Array.new
instructions.push (Instruction.new('2000-01-01', 'Big', '10am'))
instructions.push (Instruction.new('2000-01-01', 'Small', '9am'))
instructions.push (Instruction.new('1999-09-09', 'Small', '4pm'))
instructions.push (Instruction.new('2000-01-01', 'Small', '9am'))
instructions.uniq.each {|e| puts "date: #{e.date} \tgroup: #{e.group} \ttime: #{e.time}"}
내가 그러나 나는 아직도 출력에 반복되는 항목을 참조 .uniq
에 의해 제거 '2000-01-01', 'Small', '9am'
항목 중 하나 기대.
def ==(other)
other.class == self.class && other.date == self.date && other.group == self.group && other.time == self.time
end
alias :eql? :==
을하지만 그건 작동 중 ... 도움이되지 않았다 다음과 같이
나는 클래스 정의에 ==
및 eql?
방법을 추가하는 시도!
우수! 고마워요! –