从切片中删除重复项目
在您的情况下,您在从切片中删除重复项目时遇到问题,因为您重新迭代切片并在迭代时删除元素。如果重复项位于切片末尾,这可能会导致索引错误和恐慌。
要解决此问题,更有效的方法是将唯一元素复制到切片的开头,然后修剪之后任何多余的元素。具体方法如下:
i := 0
for _, v := range cfg.Bootstrap {
if v.PeerID == peer.PeerID && v.Address == peer.Address {
continue
}
cfg.Bootstrap[i] = v
i
}
cfg.Bootstrap = cfg.Bootstrap[:i]
在此代码中:
这种方法确保删除所有重复元素并且切片在整个过程中保持一致。它避免了迭代时删除元素时可能发生的索引错误和恐慌。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3