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) }
rrree• Die Menge der Methoden vom TypIch 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.
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 FeldT enthält, dann enthält der Methodensatz von S T +
T-Methoden.
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.