Maison > développement back-end > Golang > le corps du texte

Comment utiliser la plage pour modifier des éléments dans des tableaux/tranches/cartes et canaux

PHPz
Libérer: 2023-04-05 10:38:55
original
800 Les gens l'ont consulté

Lors de la programmation en Golang, nous utilisons souvent le mot-clé range, qui est utilisé pour parcourir des structures de données telles que des tableaux, des tranches, des cartes et des canaux. Cependant, lors du processus de parcours, si nous souhaitons modifier les éléments parcourus, nous rencontrerons quelques problèmes. Cet article explique comment utiliser la plage pour modifier des éléments dans des tableaux, des tranches, des cartes et des canaux.

  1. Modifier les éléments d'un tableau et d'une tranche

Lors du parcours de tableaux et de tranches, le mot-clé range renvoie une copie de l'élément, pas l'élément lui-même. Par conséquent, si nous voulons modifier un élément, nous devons utiliser le pointeur de l’élément. Voici un exemple de code pour modifier les éléments d'un tableau et d'une tranche :

arr := [3]int{1, 2, 3}
for i := range arr {
  temp := &arr[i]
  *temp = *temp*2
}

slice := []int{1, 2, 3}
for i := range slice {
  temp := &slice[i]
  *temp = *temp*2
}
Copier après la connexion

La variable temporaire temp est utilisée dans le code pour enregistrer le pointeur de l'élément et modifier la valeur de l'élément via le pointeur.

  1. Modifier les éléments de la carte

Lors de la traversée de la carte, le mot-clé range renvoie une copie de la paire clé-valeur, pas l'élément lui-même. Ainsi, si nous voulons modifier un élément, nous devons utiliser la clé pour accéder à l'élément et modifier sa valeur. Voici un exemple de code qui modifie un élément de la carte :

oldMap := map[string]int{"a": 1, "b": 2, "c": 3}
newMap := make(map[string]int)
for k, v := range oldMap {
  newMap[k] = v*2
}
Copier après la connexion

Dans le code, lors du parcours de la carte, la clé permet d'accéder à l'élément et de modifier sa valeur. Notez que vous n'avez pas besoin d'utiliser des pointeurs lors de la modification des valeurs des éléments de la carte.

  1. Modifier les éléments du canal

Lors de la traversée du canal, le mot-clé range renvoie une copie de l'élément, pas l'élément lui-même. Par conséquent, si nous voulons modifier les éléments du canal, nous devons utiliser l'opération d'envoi du canal pour modifier la valeur dans le canal. Voici un exemple de code pour modifier des éléments dans le canal :

ch := make(chan int, 3)
ch <- 1
ch <- 2
ch <- 3

for i := range ch {
  ch <- i*2
}
Copier après la connexion

Dans le code, l'opération d'envoi du canal est utilisée pour modifier la valeur de l'élément au double de sa valeur d'origine. Il est à noter que lors de la modification d'éléments dans un canal, l'opération d'envoi du canal doit être utilisée pour envoyer la valeur modifiée au canal.

Résumé :

Lorsque nous utilisons le mot-clé range pour parcourir des tableaux, des tranches, des cartes et des canaux, si nous voulons modifier les éléments traversés, nous devons utiliser le pointeur de l'élément (tableau et tranche) et utiliser la clé pour accéder l'élément (carte). Ou utilisez l'opération d'envoi du canal pour modifier la valeur de l'élément (canal). Il convient de noter que lorsque vous utilisez la plage pour modifier des éléments, vous devez faire attention à ne pas causer de problèmes tels que des boucles infinies ou des conditions de course dans la boucle.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal