Junior — Middle
Kaip galima perduoti funkciją kaip argumentą, kad ją iškviesti kitoje funkcijoje?
sobes.tech AI
Atsakymas iš AI
Go funkcijos yra pirmosios klasės reikšmės, todėl jas galima perduoti kaip argumentus kitoms funkcijoms.
Pavyzdys, kaip perduoti funkciją kitai funkcijai:
package main
import "fmt"
// Funkcija, kuri priima kitą funkciją kaip 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) // Išves 7
}
Čia applyOperation priima du skaičius ir funkciją op, kuri apibrėžia operaciją su šiais skaičiais. main funkcijoje perduodame anonimę sudėjimo funkciją.
Taigi, norint perduoti funkciją Go kalboje, pakanka nurodyti argumento tipą kaip func(...) ... ir perduoti norimą funkciją kviečiant.