Удаление повторяющихся элементов из фрагмента
В вашей ситуации вы столкнулись с проблемой при удалении повторяющихся элементов из фрагмента, поскольку вы повторяя итерацию среза и удаляя элементы во время итерации. Это может привести к ошибкам индексирования и панике, если повторяющийся элемент находится в конце среза.
Для решения этой проблемы более эффективным подходом является копирование уникальных элементов в начало среза, а затем обрезка. любые лишние элементы после этого. Вот как это можно сделать:
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