Heim > Backend-Entwicklung > Golang > Können Go-Funktionen als Parameter übergeben werden?

Können Go-Funktionen als Parameter übergeben werden?

Susan Sarandon
Freigeben: 2024-12-03 19:55:10
Original
594 Leute haben es durchsucht

Can Go Functions Be Passed as Parameters?

Können Funktionen als Parameter in Go übergeben werden?

Java ermöglicht die Übergabe von Funktionen als Parameter durch die Verwendung anonymer innerer Klassen. Bietet Go einen ähnlichen Mechanismus, um diese Funktionalität zu ermöglichen?

Antwort:

Absolut! Go unterstützt die Übergabe von Funktionen als Parameter durch anonyme Funktionen und Abschlüsse. Hier ein paar Beispiele:

Beispiel 1:

package main

import "fmt"

type convert func(int) string

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

func quote123(fn convert) string {
    return fmt.Sprintf("%q", fn(123))
}

func main() {
    result := quote123(value)
    fmt.Println(result) // Output: "123"
}
Nach dem Login kopieren

In diesem Beispiel ist der Konvertierungsfunktionstyp so definiert, dass er eine Ganzzahl annimmt und eine Zeichenfolge zurückgibt. Die Wertfunktion implementiert die Konvertierung, indem sie die Zeichenfolgendarstellung der eingegebenen Ganzzahl zurückgibt. Die Funktion quote123 akzeptiert eine Konvertierungsfunktion als Argument und gibt eine in Anführungszeichen gesetzte Zeichenfolgendarstellung des Ergebnisses des Funktionsaufrufs mit dem Wert 123 zurück.

Beispiel 2:

package main

import "fmt"

func main() {
    result := quote123(func(x int) string { return fmt.Sprintf("%b", x) })
    fmt.Println(result) // Output: "1111011"
}
Nach dem Login kopieren

Hier wird eine anonyme Funktion als Argument an die Funktion quote123 übergeben. Die anonyme Funktion wandelt die eingegebene Ganzzahl in ihre binäre Zeichenfolgendarstellung um.

Beispiel 3:

package main

import "fmt"

func main() {
    foo := func(x int) string { return "foo" }
    result := quote123(foo)
    fmt.Println(result) // Output: "foo"
}
Nach dem Login kopieren

In diesem Fall wird eine benannte Funktion, foo, übergeben als ein Argument zum Zitieren123. Die foo-Funktion gibt einfach die Zeichenfolge „foo“ für jede Eingabe zurück.

Diese Beispiele demonstrieren die Flexibilität und Leistungsfähigkeit der Übergabe von Funktionen als Parameter in Go, sodass Sie generischen und wiederverwendbaren Code erstellen können.

Das obige ist der detaillierte Inhalt vonKönnen Go-Funktionen als Parameter übergeben werden?. 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