Junior — Middle
Jak lze předat funkci jako argument pro volání uvnitř jiné funkce?
sobes.tech AI
Odpověď od AI
V Go jsou funkce hodnotami prvotřídní třídy, takže je lze předávat jako argumenty jiným funkcím.
Příklad předání funkce jiné funkci:
package main
import "fmt"
// Funkce, která přijímá jinou funkci 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) // Vytiskne 7
}
Zde applyOperation přijímá dvě čísla a funkci op, která definuje operaci nad těmito čísly. V main předáváme anonymní funkci sčítání.
Tudíž, pro předání funkce v Go, stačí uvést typ argumentu jako func(...) ... a předat požadovanou funkci při volání.