Heim >Backend-Entwicklung >Golang >Wie ermöglicht Go die Übergabe von Funktionen als Parameter?
In Java kann man Funktionen als Parameter mithilfe anonymer innerer Klassen übergeben, obwohl dies umständlich sein kann. Go bietet hierfür einen einfacheren Ansatz mit Funktionstypen und Abschlüssen.
Betrachten Sie den folgenden Go-Code, der einen Konvertierungsfunktionstyp implementiert, der eine Ganzzahl annimmt und einen Zeichenfolgenwert zurückgibt:
type convert func(int) string
Die Wertfunktion erfüllt den Konvertierungstyp, indem sie eine Zeichenfolgendarstellung der Ganzzahl zurückgibt:
func value(x int) string { return fmt.Sprintf("%v", x) }
Die Funktion quote123 verwendet eine Konvertierungsfunktion, um 123 zu konvertieren in eine Zeichenfolge und zitiert das Ergebnis:
func quote123(fn convert) string { return fmt.Sprintf("%q", fn(123)) }
In der Hauptfunktion wird die Konvertierungsfunktion mit verschiedenen Implementierungen des Konvertierungstyps verwendet, einschließlich anonymer Funktionen:
result := quote123(func(x int) string { return fmt.Sprintf("%b", x) })
Die Konvertierung Der Typ gewährleistet die Typsicherheit und erfordert, dass alle an ihn übergebenen Funktionen den Konvertierungstyp implementieren. Dies trägt zur Aufrechterhaltung der Codekorrektheit bei und verhindert Typfehler.
Das obige ist der detaillierte Inhalt vonWie ermöglicht Go die Übergabe von Funktionen als Parameter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!