Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Functies Als Argumenten Doorgeven | Functies
Introductie tot Golang

bookFuncties Als Argumenten Doorgeven

Een andere nuttige eigenschap is de mogelijkheid om functies als argumenten aan andere functies door te geven.

Ter herinnering, de fundamentele syntaxis van een functie met parameters is als volgt:

func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
      // Code
      // Optional return statement
}

De volgende syntaxis wordt gebruikt om het gegevenstype van de parameter te specificeren wanneer deze aan een functie wordt doorgegeven:

func(datatype, datatype, …) return_datatype

Het sleutelwoord func wordt gevolgd door komma-gescheiden gegevenstypen voor de parameters van die functie tussen haakjes. Daarnaast wordt het return gegevenstype gespecificeerd voor de verwachte functie of set van functies, indien van toepassing.

Een voorbeeld kan dit concept verduidelijken:

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

In het bovenstaande voorbeeld geven we een functie genaamd nTimes door als argument aan de functie printFiveTimes. Het gegevenstype voor de parameter show in de definitie van de functie printFiveTimes is func(int, string), wat overeenkomt met de definitie van de functie nTimes, oftewel nTimes(n int, msg string).

Laten we nu een voorbeeld bekijken van een functie met een returnwaarde:

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

Wat zal de uitvoer zijn van het volgende programma:

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 1.96

bookFuncties Als Argumenten Doorgeven

Veeg om het menu te tonen

Een andere nuttige eigenschap is de mogelijkheid om functies als argumenten aan andere functies door te geven.

Ter herinnering, de fundamentele syntaxis van een functie met parameters is als volgt:

func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
      // Code
      // Optional return statement
}

De volgende syntaxis wordt gebruikt om het gegevenstype van de parameter te specificeren wanneer deze aan een functie wordt doorgegeven:

func(datatype, datatype, …) return_datatype

Het sleutelwoord func wordt gevolgd door komma-gescheiden gegevenstypen voor de parameters van die functie tussen haakjes. Daarnaast wordt het return gegevenstype gespecificeerd voor de verwachte functie of set van functies, indien van toepassing.

Een voorbeeld kan dit concept verduidelijken:

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

In het bovenstaande voorbeeld geven we een functie genaamd nTimes door als argument aan de functie printFiveTimes. Het gegevenstype voor de parameter show in de definitie van de functie printFiveTimes is func(int, string), wat overeenkomt met de definitie van de functie nTimes, oftewel nTimes(n int, msg string).

Laten we nu een voorbeeld bekijken van een functie met een returnwaarde:

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

Wat zal de uitvoer zijn van het volgende programma:

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 6
some-alt