Funktionen als Argumente Übergeben
Eine weitere nützliche Funktion ist die Möglichkeit, Funktionen als Argumente an andere Funktionen zu übergeben.
Zur Erinnerung: Die grundlegende Syntax einer Funktion mit Parametern ist wie folgt:
func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
// Code
// Optional return statement
}
Um den Datentyp des Parameters beim Übergeben an eine Funktion anzugeben, verwenden wir folgende Syntax:
func(datatype, datatype, …) return_datatype
Das Schlüsselwort func wird von durch Kommas getrennten Datentypen für die Parameter dieser Funktion in Klammern gefolgt. Zusätzlich geben wir den Rückgabedatentyp für die erwartete Funktion oder die Menge von Funktionen an, falls zutreffend.
Ein Beispiel kann dieses Konzept verdeutlichen:
index.go
12345678910111213141516package 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 wird eine Funktion namens nTimes als Argument an die Funktion printFiveTimes übergeben. Der Datentyp für den Parameter show in der Definition der Funktion printFiveTimes ist func(int, string), was der Definition der Funktion nTimes entspricht, also nTimes(n int, msg string).
Nun folgt ein Beispiel für eine Funktion mit Rückgabewert:
index.go
1234567891011121314151617181920package 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!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 1.96
Funktionen als Argumente Übergeben
Swipe um das Menü anzuzeigen
Eine weitere nützliche Funktion ist die Möglichkeit, Funktionen als Argumente an andere Funktionen zu übergeben.
Zur Erinnerung: Die grundlegende Syntax einer Funktion mit Parametern ist wie folgt:
func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
// Code
// Optional return statement
}
Um den Datentyp des Parameters beim Übergeben an eine Funktion anzugeben, verwenden wir folgende Syntax:
func(datatype, datatype, …) return_datatype
Das Schlüsselwort func wird von durch Kommas getrennten Datentypen für die Parameter dieser Funktion in Klammern gefolgt. Zusätzlich geben wir den Rückgabedatentyp für die erwartete Funktion oder die Menge von Funktionen an, falls zutreffend.
Ein Beispiel kann dieses Konzept verdeutlichen:
index.go
12345678910111213141516package 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 wird eine Funktion namens nTimes als Argument an die Funktion printFiveTimes übergeben. Der Datentyp für den Parameter show in der Definition der Funktion printFiveTimes ist func(int, string), was der Definition der Funktion nTimes entspricht, also nTimes(n int, msg string).
Nun folgt ein Beispiel für eine Funktion mit Rückgabewert:
index.go
1234567891011121314151617181920package 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!