Maison > développement back-end > Golang > Comment éviter les erreurs « hors de portée » lors de la suppression d'éléments des tableaux Go Struct dans des boucles ?

Comment éviter les erreurs « hors de portée » lors de la suppression d'éléments des tableaux Go Struct dans des boucles ?

Mary-Kate Olsen
Libérer: 2024-12-04 21:30:12
original
763 Les gens l'ont consulté

How to Avoid

Suppression d'éléments des tableaux Struct dans les boucles dans Go

Problème :
Lors de la suppression d'éléments d'un tableau de structures dans une boucle, l'erreur "hors plage" peut se produire.

Solution :
Pour supprimer des éléments par clé d'un tableau de structures, il est recommandé d'utiliser l'une des astuces de découpage suivantes :

a = append(a[:i], a[i+1:]...)
Copier après la connexion

ou

a = a[:i+copy(a[i:], a[i+1:])]
Copier après la connexion

Remarque importante :
Si Lorsque vous supprimez des éléments de la tranche en cours de boucle, il est crucial d'utiliser une boucle descendante pour éviter de sauter des éléments.

Code modifié :

// Your original loop with the issue:
// for i, application := range config.Applications {
//   if i == 1 {
//     config.Applications = _removeApplication(i, config.Applications)
//   }
// }

// Corrected code using downward loop:
for i := len(config.Applications) - 1; i >= 0; i-- {
    application := config.Applications[i]
    // Condition to decide if current element has to be deleted:
    if haveToDelete {
        config.Applications = append(config.Applications[:i],
                config.Applications[i+1:]...)
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal