Sobes.tech
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.