为了账号安全,请及时绑定邮箱和手机立即绑定

尝试仅向数组添加唯一元素

尝试仅向数组添加唯一元素

Go
慕仙森 2022-06-06 16:00:11
我正在尝试跟踪数组中的所有“工人”。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)

    }


查看完整回答
反对 回复 2022-06-06
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号