Sobes.tech
Junior — Middle

Peut-on passer une fonction en tant que valeur dans une structure de données map ?

sobes.tech IA

Réponse de l'IA

Oui, en Go, il est possible de passer des fonctions comme valeurs dans une structure de données map, car les fonctions sont des types de première classe.

Exemple :

package main

import "fmt"

func main() {
    // Déclarons une map, où la clé est une chaîne, et la valeur est une fonction prenant un int et renvoyant un int
    funcMap := make(map[string]func(int) int)

    // Ajoutons des fonctions à la map
    funcMap["square"] = func(x int) int { return x * x }
    funcMap["double"] = func(x int) int { return x * 2 }

    // Utilisons les fonctions de la map
    fmt.Println(funcMap["square"](5)) // 25
    fmt.Println(funcMap["double"](5)) // 10
}

Ainsi, il est possible de stocker et d'appeler des fonctions depuis une map par leur clé.