Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie Golang-Zeiger

So verwenden Sie Golang-Zeiger

(*-*)浩
(*-*)浩Original
2019-12-31 13:41:082484Durchsuche

So verwenden Sie Golang-Zeiger

Die grundlegende Bedeutung eines Zeigers ist die Speicheradresse, an der bestimmte Werte gespeichert sind.                                                                                              lernen: go)

In Golang können zwar nicht alle Werte aus der Adresse übernommen werden (obwohl sie auch im Speicher gespeichert werden, wie z. B. const) , aber alle Variablen müssen in der Lage sein, Adressen herauszunehmen.

Eine Variable ist ein in einem Speicherbereich gespeicherter Wert [1]. x ist in der bekannten var x int nicht nur eine Variable, ein komplexerer Ausdruck kann auch eine Variable darstellen, wie z. B. SliceA[0], MapB["Key"] und structC.FieldD. Das heißt, sie können jeweils ihre eigenen Zeiger haben.

Wenn wir den Variableninhalt der Struktur ändern müssen, müssen die von der Methode übergebenen Strukturvariablenparameter Zeiger verwenden, bei denen es sich um die Adressen der Strukturen und die Variablen der Architektur in handelt Die Karte muss geändert werden. Manchmal muss auch die Strukturadresse als Wert der Karte verwendet werden.

Go kann direkt einen neuen Strukturzeiger erstellen

In Golang können wir eine Struktur über ptr erhalten := &A{Value: 1} Ein Zeiger auf der Wert von Körper A; aber in C kann er nicht durch eine separate Zuweisungsanweisung erhalten werden:

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

Wenn dieser Unterschied nur eine grammatikalische Erscheinung ist, kann der andere Unterschied mit Fehlern zusammenhängen.

2. Zeiger auf lokale Variablen können sicher in Go zurückgegeben werden

Im obigen C-Codebeispiel können wir zwar einige Variablen deklarieren, aber wenn diese Deklarationen abgeschlossen sind innerhalb einer Methode, wie zum Beispiel:

A *init(){
    A *ptr;
    return ptr;}

oder

A *init(){
    A a;
    return &a;}

Dann ist diese deklarierte lokale Variable eine automatische Variable (automatische Variable[3]). Die ursprüngliche Methode ist auch die init(). Nachdem die Methode beendet ist, „verschwinden“ diese automatischen Variablen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Golang-Zeiger. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn