Heim  >  Artikel  >  Backend-Entwicklung  >  Wann werden Zeiger in Golang verwendet?

Wann werden Zeiger in Golang verwendet?

(*-*)浩
(*-*)浩Original
2019-12-27 11:25:104642Durchsuche

Wann werden Zeiger in Golang verwendet?

Wenn ich mir manchmal den Go-Code anderer Leute ansehe, stelle ich fest, dass einige von ihnen Zeiger im Code verwenden und andere nicht.

Angenommen, es gibt einen Strukturtyp namens Person und es wird festgestellt, dass einige Methoden func methodA (*person Person) als Parameter oder func *(person Person) methodA() als Parameter verwenden Struktureigene Methode, also die Struktur einer Person (empfohlenes Lernen: go)

kann MethodeA direkt aufrufen, verwendet jedoch einen Zeiger.

Oder Sie können die Verwendung von var personMap map[string]*Person in der Kartenstruktur sehen

Wenn Sie von Java nach Golang wechseln, ist dies möglicherweise nicht einfach zu verstehen. Da es in der Java-Welt keinen Zeiger gibt, können Sie ihn einfach direkt übergeben und verwenden. Beim Wechseln zu Golang müssen Sie jedoch auf viele Dinge achten.

Wann sollten Sie es also verwenden? Warum wird es an manchen Orten benötigt?

Wenn Sie keine Zeiger verwenden, ist es in manchen Fällen unmöglich, Strukturen Werte zuzuweisen

Sehen wir uns einen Code an. Dieser Code verwendet keine Zeiger. Definieren Sie zunächst eine Reihe von Objekten zum Testen Von der Methode übergebene Parameter müssen verwendet werden Zeiger, das heißt die Adresse der Struktur

Wenn Sie die Variablen der Struktur in der Karte ändern müssen, müssen Sie dies auch tun Verwenden Sie die Strukturadresse als Wert der Karte

Wenn Sie nur die Strukturvariable lesen, können Sie die Referenz direkt ohne Verwendung eines Zeigers übergeben *type Die Typvariable hier speichert die Adresse. Dies muss klar sein. Sie müssen &type verwenden, um die Adresse zu erhalten.

Das obige ist der detaillierte Inhalt vonWann werden Zeiger in Golang verwendet?. 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