Golang retirer de la tranche

Golang retirer de la tranche
Une tranche en Go est un type de données qui stocke une collecte de données ordonnées du même type. Les tranches sont très similaires au tableau. Cependant, contrairement aux tableaux, les tranches sont dynamiques et n'ont pas de longueur fixe. Gardez à l'esprit que malgré la durée, les tranches conservent d'autres propriétés d'un tableau Golang, y compris le type.

Dans cet article, nous explorerons comment supprimer un élément d'une tranche.

Golang crée une tranche

Nous pouvons créer une tranche dans GO en spécifiant le type de données des éléments qu'il tiendra. Nous pouvons ensuite enfermer les éléments du tableau à l'intérieur d'une paire de contreventements bouclés.

L'exemple de code ci-dessous montre comment créer une tranche en Go:

package principal
funcmain ()
Slice: = [] String "A", "B", "C", "D"

Une fois que nous avons déclaré une tranche, nous pouvons effectuer des actions telles que la mise à jour des éléments à un index spécifique, accéder aux éléments, ajouter des éléments supplémentaires et plus. Consultez notre tutoriel sur les tranches de Golang pour en savoir plus.

Golang Supprimer l'article

Avant de discuter de la façon de supprimer un élément d'une tranche, discutons de la façon dont nous pouvons créer une sous-tranche à partir d'une tranche principale. C'est parce qu'il est important de comprendre comment retirer un élément d'une tranche.

Nous pouvons créer un sous-flux en utilisant la notation d'indexation. Par exemple, si nous voulons créer un sous-flux composé des valeurs de l'index 2 à 7, nous pouvons faire:

new_slice: = old_slice [2: 7]

La syntaxe ci-dessus saisira les éléments de l'index 2 à l'index 7 à partir de l'ancienne tranche et créera une nouvelle tranche.

Si vous souhaitez créer un sous-tranche de l'index 0 à un index cible, nous pouvons faire:

new_slice: = old_slice [: 5]

La syntaxe ci-dessus prendra les éléments de l'index 0 à l'index 5 et créera une tranche fraîche.

Maintenant que nous avons le processus de création d'un sous-écran à partir d'une tranche à l'écart, nous pouvons continuer à apprendre à supprimer un élément d'une tranche.

Conserver la tranche

Supposons que nous ayons une tranche contenant des éléments comme indiqué ci-dessous:

Slice: = [] String "A", "B", "C", "D", "E", "F"

Si nous voulons retirer un élément de la tranche tout en préservant l'ordre, nous changeons les positions des éléments après l'élément que nous souhaitons retirer vers la gauche avec un facteur de.

Nous pouvons exprimer la syntaxe ci-dessus comme:

Shift Len (a) - i - 1

Où A représente la tranche et moi comme indice de l'élément que nous souhaitons supprimer.

Un exemple de code est comme indiqué:

package principal
Importer "FMT"
func main ()
Slice: = [] String "A", "B", "C", "D", "E", "F"
Index: = 1
copie (tranche [index:], tranche [index + 1:]) // Les valeurs de décalage après l'index avec un facteur de 1
Slice [len (tranche) -1] = "" // Retirez l'élément
tranche = tranche [: len (tranche) -1] // troncatelice
fmt.Println (tranche)

Le code ci-dessus supprimera l'élément à l'index 0. La tranche résultante est comme indiqué:

[a c d e f]

Ignorer l'ordre des tranches

Si la réservation de l'ordre de tranche n'est pas cruciale, nous pouvons utiliser le code comme indiqué ci-dessous:

package principal
Importer "FMT"
func main ()
Slice: = [] String "A", "B", "C", "D", "E", "F"
Index: = 1
Slice [index] = tranche [len (tranche) -1] // Copier le dernier élément Toindex Nous souhaitons supprimer
tranche [len (tranche) -1] = "" // Retirez l'élément
tranche = tranche [: len (tranche) -1]
fmt.Println (tranche)

Le code ci-dessus supprime l'élément à l'index spécifié. Cependant, il ne conserve pas l'ordre de la tranche comme indiqué dans la sortie ci-dessous:

[a f c d e]

Ceci parce que cette méthode remplace l'élément supprimé par l'élément au dernier index.

Conclusion

Dans ce guide, nous avons couvert les bases du travail avec des tranches et comment retirer un élément d'une tranche avec et sans conserver l'ordre des tranches.

Merci d'avoir lu!