Golang est un langage de programmation actuellement populaire, et sa tranche de type de données intégrée est très couramment utilisée. Slice fait référence à un bloc continu de données en mémoire. Il présente les caractéristiques d'une longueur variable dynamiquement, ce qui est différent d'un tableau. Cet article présentera en détail comment utiliser Golang Slice.
Il existe deux façons de créer des tranches dans Golang :
(1) Utilisez la fonction make() pour créer des tranches
La fonction make() est utilisée dans Golang pour créer des tranches, des cartes, des canaux, etc. fonction. Lorsque vous utilisez la fonction make() pour créer une tranche, vous devez spécifier le type, la longueur et la capacité de la tranche. Comme indiqué ci-dessous :
s := make([]int, 5, 10)
Le code ci-dessus crée une tranche de type int contenant 5 éléments et alloue un espace de stockage pour 10 éléments. Parmi eux, la longueur est de 5 et la capacité est de 10.
(2) Utilisez la méthode littérale pour créer une tranche
En méthode littérale, vous pouvez initialiser une tranche et définir sa valeur initiale. Comme indiqué ci-dessous :
s := []int{1, 2, 3, 4, 5}
Le code ci-dessus crée une tranche de type int contenant 5 éléments et définit sa valeur initiale via {}.
Tout comme les tableaux, les éléments de tranche sont également accessibles via des indices. Comme indiqué ci-dessous :
s := []int{1, 2, 3, 4, 5} s[0] // 访问第一个元素 s[1] // 访问第二个元素 ...
(1) Utilisez la boucle for pour parcourir la tranche
Vous pouvez utiliser la boucle for pour parcourir une tranche et obtenir la valeur de chaque élément. Comme indiqué ci-dessous :
s := []int{1, 2, 3, 4, 5} for i := 0; i < len(s); i++ { fmt.Println(s[i]) }
(2) Utilisez le mot-clé range pour parcourir une tranche
L'utilisation du mot-clé range peut plus facilement parcourir une tranche et obtenir la valeur de chaque élément. Comme indiqué ci-dessous :
s := []int{1, 2, 3, 4, 5} for _, v := range s { fmt.Println(v) }
Dans le code ci-dessus, l'utilisation de _ ignore la valeur de retour de l'indice et obtient uniquement la valeur de l'élément.
Dans Golang, vous pouvez couper une tranche pour obtenir une tranche plus petite.
L'opération de coupe de tranche est mise en œuvre via deux points (:). Le nombre avant le premier deux-points indique la position de départ, et le nombre après le premier deux-points indique la position de fin (à l'exclusion de cette position), comme indiqué ci-dessous :
s := []int{1, 2, 3, 4, 5} s1 := s[1:3] // s1变成了[2, 3]
Dans le code ci-dessus, s1 commence à partir de s[1] et va à s[3] (à l'exclusion de s[3]).
Si le nombre avant les deux points est omis, cela signifie partir du premier élément de la tranche. Si le nombre après les deux points est omis, cela signifie couper jusqu'au dernier élément de la tranche.
la tranche a la particularité de changer dynamiquement de longueur, de sorte qu'un ou plusieurs éléments peuvent être ajoutés à la tranche existante.
Vous pouvez utiliser la fonction intégrée append() pour ajouter un ou plusieurs éléments à la tranche. La fonction append() étend automatiquement la capacité de la tranche pour accueillir les éléments nouvellement ajoutés.
s := []int{1, 2, 3, 4, 5} s = append(s, 6) // 追加一个元素6 s = append(s, 7, 8, 9) // 追加三个元素7、8、9
Dans Golang, slice n'a pas de fonction intégrée pour supprimer des éléments, mais vous pouvez utiliser la fonction append() en conjonction avec l'opération de coupe pour obtenir la fonction de suppression d'éléments.
Par exemple, si vous souhaitez supprimer le troisième élément de slice, vous pouvez suivre les étapes ci-dessous :
(1) Utilisez l'opération de découpe de slice pour supprimer l'élément à supprimer, comme indiqué ci-dessous :
s := []int{1, 2, 3, 4, 5} s = append(s[:2], s[3:]...)
In le code ci-dessus, utilisez append La fonction () coopère avec l'opération de coupe pour supprimer le troisième élément s[2] dans la tranche.
(2) Utilisez une boucle for pour parcourir la tranche, recherchez l'élément à supprimer et utilisez l'opération de coupe de la tranche pour le supprimer.
Dans Golang, vous pouvez utiliser la fonction intégrée copy() pour copier une tranche.
s1 := []int{1, 2, 3, 4, 5} s2 := make([]int, len(s1)) copy(s2, s1)
Dans le code ci-dessus, la fonction make() est utilisée pour créer une tranche s2 de la même longueur que s1, et la fonction copy() est utilisée pour copier les éléments de s1 vers s2.
Lorsque le nombre d'éléments copiés dépasse la capacité de la tranche cible, la fonction copy() copiera uniquement les éléments de la tranche cible. Si la tranche cible est plus grande que la tranche source, un élément de valeur 0 sera ajouté à la fin de la tranche cible.
Résumé
Grâce au contenu ci-dessus, nous pouvons résumer les principales caractéristiques de slice :
(1) Slice est une séquence de longueur variable dynamiquement.
(2) Les opérations de base de slice incluent la création, l'accès à des éléments, le parcours, la coupe, l'ajout d'éléments, la suppression d'éléments et la copie.
(3) Utilisez la fonction make() ou la méthode littérale pour créer une tranche.
(4) Utilisez un indice ou un mot-clé range pour accéder aux éléments de tranche.
(5) Utilisez l'opération de coupe pour diviser la tranche, utilisez la fonction append() pour ajouter des éléments et la fonction copy() pour copier la tranche.
En bref, slice, en tant que type de données intégré à Golang, joue un rôle très important. Lorsque nous avons besoin d’une structure de données de longueur variable dynamiquement, nous pouvons d’abord utiliser slice.
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!