Maison > développement back-end > Golang > Pourquoi slices.Delete() dans Golang copie-t-il l'élément suivant ?

Pourquoi slices.Delete() dans Golang copie-t-il l'élément suivant ?

PHPz
Libérer: 2024-02-14 10:00:09
avant
1279 Les gens l'ont consulté

Pourquoi slices.Delete() dans Golang copie-t-il lélément suivant ?

L'éditeur PHP Zimo discutera d'une question sur la fonction slices.Delete() dans Golang dans cet article : Pourquoi copie-t-il l'élément suivant ? Les tranches dans Golang sont une structure de données puissante, mais la fonction slices.Delete() présente un comportement étrange lors de la suppression d'éléments. Nous analyserons ce phénomène et donnerons des explications et causes possibles. En approfondissant ce problème, nous pouvons mieux comprendre le fonctionnement interne et les idées de conception du découpage dans Golang. Après avoir lu cet article, vous serez plus familier avec les opérations de découpage de Golang, améliorant ainsi l'efficacité de la programmation et la qualité du code.

Contenu de la question

Exemple de code :

func main() {
    bar := []string{"Monday", "Tuesday", "Wednesday"}
    slices.Delete(bar, 0, 1) // I want to delete 'Monday'
    fmt.Println(bar)         // prints [Tuesday Wednesday Wednesday]
}
Copier après la connexion

Je ne comprends pas pourquoi j’ai reçu un « mercredi ». Je m'attends à une tranche à deux éléments.

Workaround

slices.delete Renvoie la tranche modifiée. Vous devriez l'utiliser comme :

bar=slices.Delete(bar, 0, 1)
Copier après la connexion

En effet, l'opération de suppression déplace les éléments dans la tranche puis renvoie une tranche plus courte, mais la tranche d'origine bar reste inchangée.

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:stackoverflow.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal