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
Barbara StreisandOriginal
2024-12-05 10:14:10658Durchsuche

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

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!

Stellungnahme:
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