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é.