Maison > développement back-end > Golang > Comment modifier la valeur d'une tranche dans Golang

Comment modifier la valeur d'une tranche dans Golang

青灯夜游
Libérer: 2023-01-05 18:59:40
original
3981 Les gens l'ont consulté

Méthode de modification : 1. Utilisez la fonction append() pour ajouter de nouvelles valeurs, la syntaxe est « append(slice, value list) » ; 2. Utilisez la fonction append() pour supprimer des éléments, la syntaxe est « append(a) » ; [:i], a[i] +N:]...)"; 3. Réaffectez directement en fonction de l'index, la syntaxe est "nom de la tranche [index] = nouvelle valeur".

Comment modifier la valeur d'une tranche dans Golang

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Vérifiez l'ajout, la suppression et la modification des tranches en langage Go

  • Une tranche est un tableau dynamique, vous pouvez utiliser la fonction append() pour ajouter des éléments
  • Il n'y a pas de méthode spéciale pour supprimer des éléments de tranche dans le langage go, nous pouvons utiliser les propriétés de la tranche elle-même pour supprimer des éléments.
  • Étant donné que les tranches sont des types de référence, le contenu original sera modifié via l'affectation. Go fournit la fonction copy() pour copier la tranche

1 Ajouter des éléments

package main
import "fmt"
func main() {
 a := []int{}
 a = append(a, 1)
 a = append(a, 2)
 a = append(a, 3, 4, 5) //添加多个元素
 fmt.Printf("a: %v\n", a)
 fmt.Println("---------------------")
 a1 := []int{3, 4, 5}
 a2 := []int{1, 2}
 a2 = append(a2, a1...) //添加另外一个切片进去
 fmt.Printf("a2: %v\n", a2)
}
//输出结果如下
a: [1 2 3 4 5]
---------------------
a2: [1 2 3 4 5]
Copier après la connexion

2.

Comment modifier la valeur dune tranche dans Golang

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4}
 fmt.Println("---删除之前---")
 fmt.Printf("s1: %v\n", s1)
 //删除3这个元素,它的下标索引为2
 s1 = append(s1[:2], s1[3:]...)
 fmt.Println("---删除之后---")
 fmt.Printf("s1: %v\n", s1)
}
//执行结果如下
---删除之前---
s1: [1 2 3 4]
---删除之后---
s1: [1 2 4]
Copier après la connexion

Formule de suppression d'éléments :

Pour supprimer l'élément avec index index de la tranche a, la méthode de fonctionnement est la suivante

a = append(a[:index], a[index+1:]...)
Copier après la connexion

3. Modifier l'élément de tranche.

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 s1[1] = 100 //索引1的值改为100
 fmt.Printf("s1: %v\n", s1)
}
//输出结果如下
s1: [1 100 3 4 5]
Copier après la connexion
4. Trouvez l'élément de tranche

package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 var key = 2 //查找2所在的位置
 for i, v := range s1 {
  if v == key {
   fmt.Printf("s1: %v\n", s1)
   fmt.Printf("索引为: %v\n", i)
  }
 }
}
//输出结果如下
s1: [1 2 3 4 5]
索引为: 1
Copier après la connexion

5. Vous pouvez voir quand la valeur de s2 change, le la valeur de s1 est également modifiée, car s2 copie l'adresse mémoire de s1, donc l'association changera

L'utilisation de la méthode de copie pour modifier n'affectera pas la valeur de la tranche source
package main
import "fmt"
func main() {
 var s1 = []int{1, 2, 3, 4, 5}
 var s2 = s1
 s2[0] = 100
 fmt.Printf("s1: %v\n", s1)
 fmt.Printf("s2: %v\n", s2)
}
//输出结果如下
s1: [100 2 3 4 5]
s2: [100 2 3 4 5]
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Article précédent:Le langage go est-il un langage facile ? Article suivant:Le langage go est-il un langage machine ?
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal