„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Go's "*" Modifikator: Pass-by-Wert oder Pass-by-Reference?

Go's "*" Modifikator: Pass-by-Wert oder Pass-by-Reference?

Gepostet am 2025-03-23
Durchsuche:991

Go's

durch Referenz und Wert in go: Das Verständnis des "*" modifier

Daten an und aus Funktionen zu übergeben, ist ein grundlegender Aspekt der Programmierung. In Go gibt es zwei Hauptmethoden, um dies zu tun: nach Wert oder Übergang von Referenzen. Letzteres beinhaltet die Verwendung des "*" -Modifikators, der für Anfänger verwirrend sein kann.

In Java ist es einfach, ein Objekt durch Referenz zu übergeben, da Objekte von Natur aus als Referenz übergeben werden. In Go, das sowohl Pass-by-Wert als auch Pass-by-Referenz ermöglicht, kann die Verwendung von Zeigern effizienter sein.

Die "" bezeichnet einen Zeiger auf den Typ. Zum Beispiel gibt Func PutTasks (db sql.db) an, dass der DB -Parameter ein Zeiger auf ein SQL.DB -Objekt ist. Der Grund dafür ist, dass es technisch nur Pass-by-Wert unterstützt, und wenn Sie einen Zeiger übergeben, können Sie Pass-by-Reference simulieren.

Wenn Sie einen Zeiger übergeben, übergeben Sie einen Wert (den Zeiger selbst), der auf das tatsächliche Objekt im Gedächtnis hinweist. Dies bedeutet, dass Änderungen, die über den Zeiger vor dem Objekt vorgenommen wurden, in der an die Funktion übergebenen ursprünglichen Variablen reflektiert werden. Andererseits macht das Übergeben eines Wertes direkt (ohne " *") eine Kopie des ursprünglichen Wertes, sodass Änderungen, die in der Funktion vorgenommen wurden, die ursprüngliche Variable nicht beeinflusst.

Das angegebene Beispiel, Funktion für func printperson (p *Person), benötigt einen Zeiger, da sie das Personobjekt ändern muss, um ihre Details zu drucken. Wenn es stattdessen einen Wert erhielt, würden alle Änderungen nur die Kopie in der Funktion beeinflussen.

Verständnis von pass-by-referenz und pass-by-value ist entscheidend für das Schreiben effektiver Code in GO. Wenn Sie gegebenenfalls Zeiger verwenden, können Sie die Leistung verbessern und die Konsistenz zwischen Funktionen und Anrufercode aufrechterhalten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3