Maison >développement back-end >Golang >Pourquoi mes mises à jour de structure ne sont-elles pas persistantes dans une boucle Go ?
Malgré la manipulation des éléments dans une structure pendant les itérations de la boucle, les mises à jour ne parviennent pas à persister à la sortie de la boucle. Comprendre la raison derrière ce comportement est crucial pour une manipulation correcte de la structure.
Lors d'une itération sur une tranche de structure, la variable de boucle fait référence à une copie de l'élément d'origine, et non à l'élément lui-même. . Ainsi, toute modification effectuée dans la boucle n'affecte que la copie et non l'élément réel dans la tranche.
Pour réussir la mise à jour des éléments struct, l'approche suivante peut être utilisée :
Voici un extrait de code mis à jour qui suit la solution :
type FTR struct { Id string Mod []Mod } type Mod struct { Name string Type string } for index := range ftr.Mod { switch ftr.Mod[index].Type { case "aaa", "bbbb": ftr.Mod[index].Type = "cccc" case "htr": ftr.Mod[index].Type = "com" case "no": ftr.Mod[index].Type = "jnodejs" case "jdb": ftr.Mod[index].Type = "tomcat" } }
En adoptant ceci approche, les éléments de la structure seront mis à jour avec succès et les modifications persisteront après la sortie de 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!