我正在尝试跟踪数组中的所有“工人”。m是一个具有字符串字段 uuid 的结构,args. 我不确定这里出了什么问题,但是代码一次又一次地添加具有相同 uuid 的工人(当调用代码时)。任何帮助,将不胜感激。PS:这段代码可能会被同时调用(但代码是互斥锁的,所以没关系) 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) }
1 回答

叮当猫咪
TA贡献1776条经验 获得超12个赞
正如@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)
}
- 1 回答
- 0 关注
- 108 浏览
添加回答
举报
0/150
提交
取消