从切片中删除重复项目
在您的情况下,您在从切片中删除重复项目时遇到问题,因为您'重新迭代切片并在迭代时删除元素。如果重复项位于切片末尾,这可能会导致索引错误和恐慌。
要解决此问题,更有效的方法是将唯一元素复制到切片的开头,然后修剪之后任何多余的元素。具体方法如下:
<code class="go">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]</code>
在此代码中:
这种方法可确保删除所有重复元素,并且切片在整个过程中保持一致。它避免了迭代时删除元素时可能发生的索引错误和恐慌。
以上是如何有效地从Go中的切片中删除重复项?的详细内容。更多信息请关注PHP中文网其他相关文章!