Junior — Middle
Jak można przekazać funkcję jako argument do wywołania wewnątrz innej funkcji?
sobes.tech AI
Odpowiedź od AI
W Go funkcje są wartościami pierwszej klasy, dlatego można je przekazywać jako argumenty do innych funkcji.
Przykład przekazywania funkcji do innej funkcji:
package main
import "fmt"
// Funkcja przyjmująca inną funkcję jako argument
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) // Wypisze 7
}
Tutaj applyOperation przyjmuje dwie liczby i funkcję op, która określa operację na tych liczbach. W main przekazujemy anonimową funkcję dodawania.
W związku z tym, aby przekazać funkcję w Go, wystarczy określić typ argumentu jako func(...) ... i przekazać odpowiednią funkcję podczas wywołania.