Maison >développement back-end >Golang >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.
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] }
Je ne comprends pas pourquoi j’ai reçu un « mercredi ». Je m'attends à une tranche à deux éléments.
slices.delete
Renvoie la tranche modifiée. Vous devriez l'utiliser comme :
bar=slices.Delete(bar, 0, 1)
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!