Heim > Backend-Entwicklung > Golang > Wie ermöglicht Go die Übergabe von Funktionen als Parameter?

Wie ermöglicht Go die Übergabe von Funktionen als Parameter?

Barbara Streisand
Freigeben: 2024-12-05 10:14:10
Original
656 Leute haben es durchsucht

How Does Go Enable Passing Functions as Parameters?

Funktionen als Parameter in Go übergeben

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
Nach dem Login kopieren

Die Wertfunktion erfüllt den Konvertierungstyp, indem sie eine Zeichenfolgendarstellung der Ganzzahl zurückgibt:

func value(x int) string {
    return fmt.Sprintf("%v", x)
}
Nach dem Login kopieren

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))
}
Nach dem Login kopieren

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) })
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage