Junior — Middle
Ako môžete odovzdať funkciu ako argument na volanie vnútri inej funkcie?
sobes.tech AI
Odpoveď od AI
V Go sú funkcie hodnotami prvej triedy, takže ich možno odovzdávať ako argumenty iným funkciám.
Príklad odovzdania funkcie inej funkcii:
package main
import "fmt"
// Funkcia, ktorá prijíma inú funkciu ako 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) // Vytlačí 7
}
Tu applyOperation prijíma dve čísla a funkciu op, ktorá definuje operáciu nad týmito číslami. V main odovzdávame anonymnú funkciu sčítania.
Týmto spôsobom, na odovzdanie funkcie v Go, stačí špecifikovať typ argumentu ako func(...) ... a odovzdať požadovanú funkciu pri volaní.