Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Funktionen als Argumente Übergeben | Funktionen
Einführung in Golang
course content

Kursinhalt

Einführung in Golang

Einführung in Golang

1. Erste Schritte
2. Datentypen
3. Kontrollstrukturen
4. Funktionen
5. Arrays und Slices
6. Einführung in Strukturen & Maps

book
Funktionen als Argumente Übergeben

Ein weiteres nützliches Merkmal ist die Fähigkeit, Funktionen als Argumente an andere Funktionen zu übergeben.

Zur Erinnerung: Die grundlegende Syntax einer Funktion mit Parametern ist wie folgt:

Wir verwenden die folgende Syntax, um den Datentyp des Parameters anzugeben, wenn wir ihn an eine Funktion übergeben:

Das Schlüsselwort func wird von kommagetrennten Datentypen für die Parameter dieser Funktion in Klammern gefolgt. Zusätzlich geben wir den Rückgabedatentyp für die erwartete Funktion oder Menge von Funktionen an, falls zutreffend.

Ein Beispiel kann helfen, dieses Konzept zu veranschaulichen:

go

index

copy
12345678910111213141516
package main import "fmt" func nTimes(n int, msg string) { for i := 0; i < n; i++ { fmt.Println(msg) } } func printFiveTimes(msg string, show func(int, string)) { show(5, "Hello World") } func main() { printFiveTimes("HelloWorld", nTimes) }

Im obigen Beispiel übergeben wir eine Funktion namens nTimes als Argument an die Funktion printFiveTimes. Der Datentyp für den show-Parameter in der Definition der Funktion printFiveTimes ist func(int, string), was der Definition der Funktion nTimes entspricht, d.h. nTimes(n int, msg string).

Schauen wir uns nun ein Beispiel für eine Funktion mit einem Rückgabewert an:

go

index

copy
1234567891011121314151617181920
package main import "fmt" // A factorial is the product of all the numbers from 1 up till n // For-example factorial of 5 is 1x2x3x4x5, which is 120 func factorial(n int) int { var result int = 1; for i := 2; i <= n; i++ { result *= i } return result } func eval(n int, oper func(int) int) int { return oper(n) } func main() { fmt.Println(eval(5, factorial)) }
Was wird die Ausgabe des folgenden Programms sein:

Was wird die Ausgabe des folgenden Programms sein:

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6
We're sorry to hear that something went wrong. What happened?
some-alt