Junior — Middle
Hogyan lehet egy függvényt argumentumként átadni egy másik függvényen belüli híváshoz?
sobes.tech MI
Válasz az MI-től
A Go-ban a függvények első osztályú értékek, ezért átadhatók más függvények argumentumaként.
Példa egy függvény átadására egy másiknak:
package main
import "fmt"
// Függvény, amely másik függvényt fogad argumentumként
func applyOperation(a, b int, op func(int, int) int) int {
return op(a, b)
}
func main() {
sum := func(x, y int) int {
return x + y
}
result := applyOperation(3, 4, sum)
fmt.Println(result) // 7-et ír ki
}
Itt az applyOperation két számot és egy op nevű függvényt fogad, amely meghatározza az műveletet ezeken a számokon. A main-ben egy névtelen összeadó függvényt adunk át.
Tehát a Go-ban a függvény átadásához elegendő az argumentum típusát func(...) ...-ként megadni, és a kívánt függvényt átadni a hívás során.