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

bookFunktionen 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

index.go

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 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

index.go

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)) }
question mark

Was wird die Ausgabe des folgenden Programms sein:

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 1.96

bookFunktionen 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

index.go

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 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

index.go

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)) }
question mark

Was wird die Ausgabe des folgenden Programms sein:

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6
some-alt