Detaillierte Erläuterung des Unterschieds zwischen dem Empfänger einer Methode in Golang, der ein Zeiger ist und kein Zeiger

藏色散人
Freigeben: 2021-02-16 09:13:37
nach vorne
3220 Leute haben es durchsucht

Die folgende Tutorial-Kolumne von golang gibt Ihnen eine detaillierte Erklärung des Unterschieds zwischen dem Empfänger einer Methode in Golang, einem Zeiger und einem Nicht-Zeiger. Ich hoffe, dass er Freunden in Not hilfreich sein wird!

Detaillierte Erläuterung des Unterschieds zwischen dem Empfänger einer Methode in Golang, der ein Zeiger ist und kein Zeiger

Der Unterschied zwischen dem Empfänger einer Methode in Golang, der ein Zeiger ist und kein Zeiger ist

Vorwort

Kürzlich habe ich eine Website gelesen und ein Klassenkamerad fragte, was der Unterschied zwischen dem Empfänger einer Methode sei Da Golang ein Zeiger und kein Zeiger ist, erkläre ich hier eine einfache und leicht verständliche Methode, um Schülern zu helfen, die gerade Golang gelernt haben. Solange Sie das verstehen Grundsätzlich können Sie die oben genannten Probleme verstehen.

Die Methode ist eigentlich eine spezielle Funktion. Der Empfänger ist das erste Argument, das implizit übergeben wird.

type test struct{
    name string
}

func (t test) TestValue() {
}

func (t *test) TestPointer() {
}

func main(){
    t := test{}
    
    m := test.TestValue
    m(t)
    
    m1 := (*test).TestPointer
    m1(&t)    
}
Nach dem Login kopieren
Ist es jetzt einfach, Code hinzuzufügen? um zu sehen, was der Unterschied zwischen Zeigern und Nicht-Zeigern ist
rrree

Ich vermute, dass einige Schüler verstanden haben, dass der Wert jedes Mal kopiert wird, wenn TestValue() aufgerufen wird , der Wert wird kopiert.

Was wird das Ergebnis sein, wenn es darum geht, den Wert zu ändern? qyuhens Lesenotizen in Golang, und ich empfehle es auch Freunden, die Golang mögen. Die Lektüre dieses Buches wird eine große Hilfe sein, Ihr Verständnis von Golang zu vertiefen.
• Die Menge der Methoden vom Typ

T enthält alle Empfänger-T +

T-Methoden.

• Wenn Typ S ein anonymes Feld T enthält, dann enthält der Methodensatz von S T Methoden.

• Wenn Typ S das anonyme Feld

T enthält, dann enthält der Methodensatz von S T +
T-Methoden.

• Unabhängig von der Einbettung von T oder

T enthält der Satz der
S-Methoden immer T + *T-Methoden.

Fazit
Obwohl Golang einfach und leicht zu verwenden ist, birgt es dennoch viele Fallstricke bei der Verwendung von Golang, die später im Blog erwähnt werden.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Unterschieds zwischen dem Empfänger einer Methode in Golang, der ein Zeiger ist und kein Zeiger. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage