Junior — Middle
Dans quelles situations la collecte et le déplacement de données sont-ils effectués en langage Go?
sobes.tech IA
Réponse de l'IA
Dans le langage Go, la collecte et le déplacement de données (copie et déplacement) se produisent dans plusieurs situations:
- Lors de l'assignation de valeurs aux variables. Par exemple, lors de l'assignation d'une valeur à une variable, une copie des données est effectuée.
- Lors du passage d'arguments aux fonctions par valeur. Les valeurs sont copiées dans les paramètres de la fonction.
- Lors du retour de valeurs depuis des fonctions par valeur.
- Lors du travail avec des slices, des cartes et des canaux, ce n'est pas le tableau ou les données eux-mêmes qui sont déplacés, mais un pointeur vers eux, ce qui est efficace.
Go utilise la sémantique de passage par valeur, mais pour des structures complexes, des pointeurs sont souvent passés pour éviter de copier de grands volumes de données.
Exemple de copie de structure:
type Point struct {
X, Y int
}
p1 := Point{X: 1, Y: 2}
p2 := p1 // copie des données de la structure
p2.X = 10
// p1.X restera 1, p2.X sera 10
Ainsi, la collecte et le déplacement de données en Go sont des opérations naturelles de copie lors de l'assignation et du passage par valeur, ainsi que le passage de pointeurs pour l'optimisation.