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:
func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
// Code
// Optional return statement
}
Wir verwenden die folgende Syntax, um den Datentyp des Parameters anzugeben, wenn wir ihn an eine Funktion übergeben:
func(datatype, datatype, …) return_datatype
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.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 ü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.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
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:
func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
// Code
// Optional return statement
}
Wir verwenden die folgende Syntax, um den Datentyp des Parameters anzugeben, wenn wir ihn an eine Funktion übergeben:
func(datatype, datatype, …) return_datatype
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.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 ü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.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!