尝试仅将唯一元素添加到数组

我试图跟踪阵列中所有的“工人”。 m是具有字符串字段uuid的结构,args也是如此。我不确定这里出什么问题,但是代码会一次又一次地(使用代码时)添加具有相同uuid的工作程序。

任何帮助将不胜感激。

P.S:可以同时调用此代码(但是该代码是互斥锁的,因此并不重要)

    var pollingWrkr *Wrkr
    pollingWrkr = nil
    for idx,w := range m.workers {
        if w.uuid == args.WorkerUUID {
            pollingWrkr = &m.workers[idx]
            break
        }
    }

    // add new worker
    if pollingWrkr == nil {
        pollingWrkr = new(Wrkr)
        m.workers = append(m.workers,*pollingWrkr) // add worker to list
        log.Printf("worker %v added\n",args.WorkerUUID)
    }
iCMS 回答:尝试仅将唯一元素添加到数组

正如@mkropriva指出的那样,从未分配新的Wrkr的uuid。

if pollingWrkr == nil {
        pollingWrkr = new(Wrkr)
        pollingWrkr.uuid = args.WorkerUUID // THIS HERE SOLVED IT!!!
        m.workers = append(m.workers,*pollingWrkr) // add worker to list
        log.Printf("worker %v added\n",args.WorkerUUID)
    }
本文链接:https://www.f2er.com/2256872.html

大家都在问