Maison > développement back-end > Golang > Comment modifier les valeurs d'origine lors des itérations de plage dans Go ?

Comment modifier les valeurs d'origine lors des itérations de plage dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-30 12:34:14
original
568 Les gens l'ont consulté

How to Modify Original Values During Range Iterations in Go?

Adressage des valeurs dans les itérations de plage

Lors d'une itération sur une plage de valeurs, il est courant de vouloir modifier les valeurs d'origine plutôt que de simplement travailler avec des copies. Cependant, par défaut, la construction range renvoie une copie de chaque valeur.

package main

import "fmt"

type MyType struct {
    field string
}

func main() {
    var array [10]MyType

    for _, e := range array {
        e.field = "foo"
    }

    for _, e := range array {
        fmt.Println(e.field)
        fmt.Println("--")
    }
}
Copier après la connexion

Dans le code ci-dessus, le champ "field" de chaque élément du tableau n'est pas modifié car la plage copie la valeur dans la variable e.

Solution

Pour modifier les valeurs d'origine, vous ne pouvez pas utiliser la construction range pour parcourir les valeurs. Au lieu de cela, vous devez utiliser l'index du tableau.

package main

import "fmt"

type MyType struct {
    field string
}

func main() {
    var array [10]MyType

    for idx, _ := range array {
        array[idx].field = "foo"
    }

    for _, e := range array {
        fmt.Println(e.field)
        fmt.Println("--")
    }
}
Copier après la connexion

En utilisant l'index du tableau, vous accédez directement aux valeurs d'origine du tableau et pouvez les modifier si nécessaire.

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