Junior — Middle
Comment peut-on passer une fonction en tant qu'argument pour l'appeler à l'intérieur d'une autre fonction?
sobes.tech IA
Réponse de l'IA
En Go, les fonctions sont des valeurs de première classe, elles peuvent donc être transmises en tant qu'arguments à d'autres fonctions.
Exemple de transmission d'une fonction à une autre:
package main
import "fmt"
// Fonction qui accepte une autre fonction en 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) // Affiche 7
}
Ici, applyOperation accepte deux nombres et une fonction op, qui définit l'opération sur ces nombres. Dans main, nous passons une fonction anonyme d'addition.
Ainsi, pour passer une fonction en Go, il suffit de spécifier le type d'argument comme func(...) ... et de passer la fonction souhaitée lors de l'appel.