Junior — Middle
Kako se funkcija može proslediti kao argument za pozivanje unutar druge funkcije?
sobes.tech АИ
Одговор од АИ
U Go funkcije su vrednosti prve klase, pa ih je moguće proslediti kao argumente drugim funkcijama.
Primer prosleđivanja funkcije drugoj funkciji:
package main
import "fmt"
// Funkcija koja prihvata drugu funkciju kao 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) // Ispisaće 7
}
Ovde, applyOperation prihvata dva broja i funkciju op, koja definiše operaciju nad tim brojevima. U main, prosleđujemo anonimnu funkciju sabiranja.
Dakle, da biste prosledili funkciju u Go, dovoljno je da navedete tip argumenta kao func(...) ... i da prilikom poziva prosledite željenu funkciju.