Junior — Middle
Come si può passare una funzione come argomento per essere chiamata all'interno di un'altra funzione?
sobes.tech AI
Risposta dell'AI
In Go, le funzioni sono valori di prima classe, quindi possono essere passate come argomenti ad altre funzioni.
Esempio di passaggio di una funzione a un'altra:
package main
import "fmt"
// Funzione che accetta un'altra funzione come argomento
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) // Stampa 7
}
Qui, applyOperation accetta due numeri e una funzione op, che definisce l'operazione su questi numeri. In main, passiamo una funzione anonima di somma.
Pertanto, per passare una funzione in Go, basta specificare il tipo di argomento come func(...) ... e passare la funzione desiderata durante la chiamata.