Struct-Methoden sind wie Klassenmethoden. Die Variable 'r' ist eine Referenz auf die struct/class-Instanz/das Objekt, auf die die Methode angewendet wird. Ohne diese Referenz können Sie nicht auf das zugreifen, was in dieser Struktur/diesem Objekt enthalten ist.
Hier können zum Beispiel sagen: Ich habe smallRectangle
Ihre Struktur mit:
var smallRectangle = Rectangle{5,3}
Jetzt möchte ich den Bereich mit dem Rechteck-Methode Area
area := smallRectangle.Area()
Lets betrachten berechnen, was in der Funktion geschieht . r
aus der Methodendeklaration wird eine Kopie von smallRectangle
, da dies das struct-Objekt ist, das es aufruft.
func (smallRectangle Rectangle) Area() int {
return smallRectangle.length * smallRectangle.width
}
Wie durch Icza angegeben ist, gibt es keine implizite Kennung wie self
oder this
, so dass der einzige Weg für das Verfahren der Werte der struct zuzugreifen ist, durch die Kennung r
.