Maison > développement back-end > Golang > Comment utiliser les pointeurs Golang

Comment utiliser les pointeurs Golang

(*-*)浩
Libérer: 2019-12-31 13:41:08
original
2509 Les gens l'ont consulté

Comment utiliser les pointeurs Golang

La signification fondamentale d'un pointeur est l'adresse mémoire où certaines valeurs sont stockées.                                                                                                 (recommandé à apprendre : go)

En Golang, bien que toutes les valeurs ne puissent pas être extraites de l'adresse (bien qu'elles soient également stockées en mémoire, comme const) , mais toutes les variables doivent pouvoir extraire des adresses.

Une variable est une valeur stockée dans une zone mémoire [1]. Non seulement x dans le familier var x int est une variable, mais une expression plus complexe peut également représenter une variable, telle que sliceA[0], mapB["key"] et structC.FieldD. Autrement dit, ils peuvent chacun avoir leurs propres pointeurs.

Lorsque nous devons modifier le contenu variable de la structure, les paramètres des variables de structure transmis par la méthode doivent utiliser des pointeurs, qui sont les adresses des structures, et les variables de l'architecture dans la carte doit être modifiée. Parfois, vous devez également utiliser l'adresse de la structure comme valeur de la carte.

Go peut créer directement un nouveau pointeur de structure

En golang, on peut obtenir une structure via ptr := &A{Value: 1} Un pointeur vers la valeur du corps A ; mais en C elle ne peut pas être obtenue via une instruction d'affectation distincte :

typedef struct {    
int value;
} 
A;A *ptr1; // 无法给 ptr 所指的值赋值
A *ptr2 = &A{1}; // 没有这样的语法
A a = {1}; // 再通过 &a 可以得到指针
Copier après la connexion

Si cette différence n'est qu'une apparence grammaticale, l'autre différence peut être liée à des bugs.

2. Les pointeurs vers des variables locales peuvent être renvoyés en toute sécurité dans Go

Dans l'exemple de code C ci-dessus, nous pouvons effectivement déclarer certaines variables, mais si ces déclarations sont terminées. au sein d'une méthode, comme :

A *init(){
    A *ptr;
    return ptr;}
Copier après la connexion

ou

A *init(){
    A a;
    return &a;}
Copier après la connexion

Ensuite, cette variable locale déclarée est une variable automatique (variable automatique[3]). La méthode d'origine est aussi c'est init(). Une fois celle-ci terminée, ces variables automatiques "disparaissent".

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal