"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Go's "*" Modificateur: pas-by-valeur ou pass-by-référence?

Go's "*" Modificateur: pas-by-valeur ou pass-by-référence?

Publié le 2025-03-23
Parcourir:457

Go's

passant par référence et valeur dans Go: Comprendre le "*" modificateur

passer des données à et depuis les fonctions est un aspect fondamental de la programmation. Dans GO, il existe deux façons principales de procéder: passer par valeur ou passer par référence. Ce dernier implique l'utilisation du modificateur "*", qui peut être déroutant pour les débutants.

En Java, passer un objet par référence est simple, car les objets sont intrinsèquement transmis comme références. Cependant, dans Go, qui permet à la fois la valeur pass-par valeur et le pass-par-référence, l'utilisation de pointeurs peut être plus efficace.

Le "" désigne un pointeur vers le type. Par exemple, Func puttasks (db sql.db) indique que le paramètre DB est un pointeur vers un objet SQL.DB. La raison en est que GO prend techniquement ne prend en charge que le pass-par-valeur, et passer un pointeur est un moyen de simuler la passe-by-référence.

Lorsque vous passez un pointeur, vous passez une valeur (le pointeur lui-même) qui pointe vers l'objet réel en mémoire. Cela signifie que les modifications apportées à l'objet via le pointeur seront reflétées dans la variable d'origine transmise à la fonction. D'un autre côté, passer directement une valeur (sans "*") fait une copie de la valeur d'origine, donc les modifications apportées dans la fonction n'affecteront pas la variable d'origine.

L'exemple fourni, Func Printerson (P * Person), nécessite un pointeur car il doit modifier l'objet de la personne pour imprimer ses coordonnées. S'il recevait à la place une valeur, toute modification n'affecterait que la copie maintenue dans la fonction.

Comprendre le pass-par-référence et la valeur pass-par-valeur est cruciale pour l'écriture de code efficace dans Go. L'utilisation de pointeurs le cas échéant peut améliorer les performances et maintenir la cohérence entre les fonctions et le code de l'appelant.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3