Dans Golang, les tranches sont un tableau plus flexible qui peut prendre en charge l'ajout ou la suppression dynamique d'éléments. Les méthodes de suppression couramment utilisées consistent à écraser les éléments inutiles via la fonction « ajouter » ou à copier les éléments qui doivent être conservés dans une nouvelle tranche via la fonction « copier ». Cet article présente principalement comment supprimer des éléments de tranche dans Golang.
1. Utilisez la fonction ajouter pour supprimer des éléments de tranche
Dans Golang, vous pouvez ajouter un élément à une tranche via la fonction "ajouter" si vous ajoutez une tranche vide et une tranche non vide, vous obtiendrez une nouvelle. one. Slice, cette nouvelle tranche contiendra les éléments d’origine et les éléments supplémentaires. Nous pouvons utiliser cette fonctionnalité pour supprimer un élément dans la tranche.
Tout d'abord, supposons que nous ayons une tranche entière "slice" et que nous devions y supprimer un élément. Vous pouvez envisager d'utiliser le code suivant :
func Remove(slice []int, index int) []int { return append(slice[:index], slice[index+1:]...) } func main() { slice := []int{1, 2, 3, 4, 5} index := 2 slice = Remove(slice, index) fmt.Println(slice) }
Dans le code ci-dessus, les paramètres de la fonction Remove incluent une tranche entière ". slice" et une valeur d'index "index", indiquant la position de l'élément à supprimer dans la tranche. Ensuite, nous utilisons les caractéristiques de la fonction "append" pour implémenter l'opération de suppression : d'abord, la première moitié de la tranche "slice" (de 0 à "index"-1) et la seconde moitié (de "index" + 1 à la fin de la tranche ) sont concaténés ensemble, renvoyant une nouvelle tranche comme résultat final. En affectant cette nouvelle tranche à « slice », l'opération de suppression est mise en œuvre.
Il convient de noter que dans le code ci-dessus, nous utilisons "slice[:]" pour indiquer la prise de la tranche entière. En effet, le découpage dans Golang est implémenté en fonction du tableau sous-jacent et du "tableau sous-jacent" de la tranche. pointe vers le tableau sous-jacent d’origine. Par conséquent, lors de l'exécution d'opérations de découpage, nous devons nous assurer que la capacité de la tranche est suffisante pour éviter des erreurs telles que « limites de tranche hors de portée ».
2. Utilisez la fonction de copie pour supprimer des éléments de tranche
En plus d'utiliser la fonction "ajouter", nous pouvons également utiliser la fonction "copier" pour supprimer un élément de la tranche. Différent de la fonction « ajouter », l’utilisation de la fonction « copier » nécessite au préalable de créer une tranche cible pour recevoir les résultats supprimés. Ce qui suit est un exemple de code pour une opération de suppression implémentée à l'aide de la fonction "copy" :
func Remove2(slice []int, index int) []int { result := make([]int, len(slice)-1) copy(result, slice[:index]) copy(result[index:], slice[index+1:]) return result } func main() { slice := []int{1, 2, 3, 4, 5} index := 2 slice = Remove2(slice, index) fmt.Println(slice) }
Dans le code ci-dessus, nous utilisons la fonction "make" pour créer une nouvelle tranche cible "result" dont la longueur est la longueur de l'original. slice "slice" Diminuez-le de 1, puis copiez les premiers éléments "index" de la tranche d'origine vers l'avant de la tranche cible, puis copiez les éléments restants de la tranche d'origine vers l'arrière de la tranche cible. Enfin, la nouvelle tranche « résultat » est renvoyée comme résultat après suppression.
Résumé : Dans Golang, la suppression d'un élément dans une tranche peut être réalisée grâce aux fonctions "ajouter" et "copier". Il est plus simple d'utiliser la fonction "append", mais vous devez d'abord vous assurer que la capacité de la tranche est suffisante. Bien que l’utilisation de la fonction « copier » nécessite de créer une nouvelle tranche cible, elle est relativement simple à mettre en œuvre. En développement réel, différentes méthodes de mise en œuvre peuvent être sélectionnées en fonction de besoins spécifiques.
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!