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] }
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:]...)
Explication :
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!