如何删除推送中的重复值?

How do i remove duplicate valeus in push?

这可能是菜鸟问题...

如何删除重复值而不是推送值?

当值为:("lorem", "ipsum", 1, 1, 1, "jack", "jill", "felix", "donking")
它应该打印:("lorem", "ipsum", 1, "jack", "jill", "felix", "donking")

如何像上面那样删除推送函数中的重复值?

// Push values
func (q *Data) Push(n interface{}) *Data {
    if q.Len() < q.size {
        q.data = append(q.data, n)
        if q.data[q.Len()] == q.data[q.Len()+1] {
            q.Pop()
            q.Push(n)
        }
    } else {
        q.Pop()
        q.Push(n)
    }
    return q
}

每个数据结构都使用底层原始数据结构来实现,看起来你在使用切片。如果只想保存唯一数据,则应使用 map。为了在仅使用地图查找重复项时尽可能高效,您可以使用 map[interface{}]struct{}.

需要根据推送的值检查队列中的数据。如果数据已经在队列中,它应该返回。

for i := range q.data {
    if q.data[i] == n {
        return q // return q when n value is found equal to one of q.data values.
    }
}
q.data = append(q.data, n)