Suppression des doublons d'une tranche
Vous souhaitez supprimer les pairs en double d'un fichier texte où chaque pair est caractérisé par une adresse et un PeerID. Le code fourni s'attaque efficacement à cette tâche mais rencontre une erreur lors de la suppression du dernier doublon. Pour résoudre ce problème, une approche révisée est présentée.
Pour commencer, déclarez une variable i et initialisez-la à 0. Cette variable suivra l'index du dernier homologue non dupliqué dans la tranche cfg.Bootstrap. Ensuite, parcourez la tranche à l'aide d'une boucle for basée sur une plage.
Dans la boucle, vérifiez si l'adresse et le PeerID du homologue actuel correspondent à ceux du homologue à supprimer. Si tel est le cas, ignorez le homologue actuel. Sinon, attribuez le homologue actuel à cfg.Bootstrap[i] et incrémentez i.
Une fois la boucle terminée, cfg.Bootstrap[i:] ne contiendra que les homologues en double qui doivent être supprimés. Pour réduire ces valeurs excédentaires, attribuez cfg.Bootstrap[:i] à cfg.Bootstrap.
Voici l'extrait de code révisé :
<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>
Cette approche révisée supprime efficacement tous les pairs en double, y compris ceux en dernière position.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!