Maison > développement back-end > Golang > Comment supprimer efficacement un élément d'une tranche Go à l'aide de l'opérateur Append et Spread ?

Comment supprimer efficacement un élément d'une tranche Go à l'aide de l'opérateur Append et Spread ?

DDD
Libérer: 2024-12-18 07:40:11
original
910 Les gens l'ont consulté

How to Efficiently Delete an Element from a Go Slice Using the Append and Spread Operator?

Supprimer un élément dans une tranche

Cet extrait de code Go illustre comment supprimer un élément d'une tranche :

func main() {
    a := []string{"Hello1", "Hello2", "Hello3"}
    fmt.Println(a)
    // [Hello1 Hello2 Hello3]
    a = append(a[:0], a[1:]...)
    fmt.Println(a)
    // [Hello2 Hello3]
}
Copier après la connexion

Ce code montre une astuce pour supprimer un élément à l'aide de la fonction append. Comment cela fonctionne-t-il et que fait l'opérateur ... (point point point) ?

La syntaxe pour supprimer un élément à l'index i d'une tranche a est :

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

Explication :

  • [:i] crée une tranche vide depuis le début de la tranche vers le haut à (mais sans inclure) l'index i.
  • [i 1:] crée une tranche qui commence après l'élément à l'index i et va jusqu'à la fin de la tranche.
  • ... est l'opérateur spread, qui décompresse les éléments d'une tranche ou d'un tableau en variadiques arguments.

Lorsque append est appelé, le premier argument doit être une tranche du même type que la tranche en cours de modification (a dans ce cas), le deuxième argument est un paramètre variadique qui accepte n'importe quel nombre d'éléments du même type, et la valeur de retour est la nouvelle tranche avec les éléments ajoutés.

Dans le code donné, l'opérateur de propagation décompresse les éléments de a[1:] dans l'argument variadique de ajouter. Cela équivaut à passer manuellement les éléments a[1], a[2], .... Le premier argument est une tranche vide pour garantir que les anciens éléments sont écrasés.

Conclusion :

Cette astuce nous permet de supprimer un élément d'une tranche en reconstruisant la tranche avec les éléments avant et après celui que l'on souhaite supprimer. L'opérateur de spread joue un rôle crucial dans le déballage des éléments à rajouter dans la tranche.

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