当我调用first_array | second_array
两个包含自定义对象的数组时:
first_array = [co1, co2, co3]
second_array =[co2, co3, co4]
它返回[co1, co2, co3, co2, co3, co4]
。它不会删除重复项。我试图调用uniq
结果,但它也不起作用。我应该怎么办?
更新:
这是自定义对象:
class Task
attr_accessor :status, :description, :priority, :tags
def initiate_task task_line
@status = task_line.split("|")[0]
@description = task_line.split("|")[1]
@priority = task_line.split("|")[2]
@tags = task_line.split("|")[3].split(",")
return self
end
def <=>(another_task)
stat_comp = (@status == another_task.status)
desc_comp = (@description == another_task.description)
prio_comp = (@priority == another_task.priority)
tags_comp = (@tags == another_task.tags)
if(stat_comp&desc_comp&prio_comp&tags_comp) then return 0 end
end
end
当我创建几个 Task 类型的实例并将它们放入两个不同的数组时,当我尝试调用“|”时 在他们身上没有任何反应,它只返回包含第一个和第二个数组元素的数组,而没有删除重复项。