Kursinhalt
Einführung in Golang
Einführung in Golang
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:
index
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:
index
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)) }
Danke für Ihr Feedback!