Maison >développement back-end >Golang >Traitement du découpage et du mappage dans le passage des paramètres de la fonction Golang
Lors du passage des arguments de fonction dans Go, les tranches et les cartes transmettent des références au lieu de valeurs. La modification de la tranche dans la fonction affectera la tranche dans la fonction appelante. Les modifications de mappage dans une fonction affecteront également le mappage dans la fonction appelante. Si vous devez transmettre une copie, vous pouvez utiliser la fonction de copie. Lorsque plusieurs goroutines accèdent à des tranches ou des cartes en même temps, la concurrence entre les données doit être prise en compte et des mutex doivent être utilisés pour synchroniser l'accès.
Découpage et mappage dans les paramètres de fonction passant dans Go
Dans Go, les paramètres de fonction peuvent être des types valeur ou des types référence. Les types valeur sont copiés lorsque les paramètres sont transmis, tandis que les types référence sont transmis par référence.
Slices
Les tranches sont des types de référence, donc une référence à celle-ci est transmise lorsque les paramètres de fonction sont transmis. Cela signifie que toute modification apportée aux éléments slice de la fonction sera reflétée dans la fonction qui l'appelle.
Exemple :
func modifySlice(slice []int) { slice[0] = 100 // 修改切片元素 } func main() { slice := []int{1, 2, 3} modifySlice(slice) // 传递切片引用 fmt.Println(slice) // 输出:[100 2 3] }
Map
Map est également un type de référence, et sa référence est également transmise lorsque les paramètres de fonction sont transmis. Semblable au découpage, toute modification apportée à la carte dans une fonction sera reflétée dans la fonction qui l'appelle.
Exemple :
func modifyMap(m map[string]int) { m["key"] = 100 // 修改映射元素 } func main() { m := make(map[string]int) m["key"] = 1 modifyMap(m) // 传递映射引用 fmt.Println(m["key"]) // 输出:100 }
Notes
copy
. copy
函数来创建副本。sync.Mutex
sync.Mutex
) pour synchroniser l'accès à la tranche ou à la carte. 🎜🎜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!