Junior — Middle
Cum se poate transmite o funcție ca argument pentru a fi apelată în interiorul altei funcții?
sobes.tech AI
Răspuns de la AI
În Go, funcțiile sunt valori de primă clasă, așa că pot fi transmise ca argumente altor funcții.
Exemplu de transmitere a unei funcții către o altă funcție:
package main
import "fmt"
// Funcție care acceptă o altă funcție ca 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) // Afișează 7
}
Aici, applyOperation acceptă două numere și o funcție op, care definește operația asupra acestor numere. În main, transmitem o funcție anonimă de adunare.
Prin urmare, pentru a transmite o funcție în Go, este suficient să specificați tipul argumentului ca func(...) ... și să transmiteți funcția dorită la apel.