Heim > Artikel > Backend-Entwicklung > Wie ermöglichen Methodenausdrücke die Übergabe von Methoden als Argumente in Go?
Methodenausdrücke in Go
Methodenausdrücke in Go ermöglichen es Ihnen, eine Methode mit einem benutzerdefinierten Objekt als erstem Argument aufzurufen. Dies kann nützlich sein, wenn Sie eine bestimmte Aktion an eine Funktion übergeben müssen.
Das Code-Snippet verstehen
Bedenken Sie den folgenden Go-Code:
func main() { dog := Dog{} b := (*Dog).Bark // method expression b(&dog, 5) } type Dog struct {} func (d *Dog) Bark(n int) { for i := 0; i < n; i++ { fmt.Println("Bark") } }
In diesem Beispiel wird ein Methodenausdruck verwendet, um der Variablen b eine Funktion zuzuweisen. Der Methodenausdruck (*Dog).Bark verknüpft die Bark-Methode vom Typ Dog mit einem Zeigerempfänger (*Dog).
Wenn b aufgerufen wird, wird die Bark-Methode mit dem Hundeobjekt als erstes Argument aufgerufen und 5 als zweites Argument. Die Methode gibt „Bark“ fünfmal auf der Konsole aus.
Vorteile von Methodenausdrücken
Beispielverwendung
Methodenausdrücke können in verschiedenen Situationen verwendet werden. Sie könnten beispielsweise eine Hilfsfunktion definieren, die einen Methodenausdruck und ein Objekt akzeptiert und dann eine Aktion basierend auf der Methode ausführt:
func DoAction(f func(*Dog, int), d *Dog, n int) { f(d, n) } ... func main() { var b func(*Dog, int) if (shouldBark) { b = (*Dog).Bark } else { b = (*Dog).Sit } d := Dog{} DoAction(b, &d, 3) }
Das obige ist der detaillierte Inhalt vonWie ermöglichen Methodenausdrücke die Übergabe von Methoden als Argumente in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!