Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des Unterschieds zwischen dem Empfänger einer Methode in Golang, der ein Zeiger ist und kein Zeiger

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

藏色散人
藏色散人nach vorne
2021-02-16 09:13:373210Durchsuche

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)    
}
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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen