Mappage avec des touches de fonction
Le mappage des données à l'aide de fonctions comme touches peut offrir une flexibilité dans l'accès aux valeurs. Cependant, tenter de créer une carte avec une fonction comme clé, comme illustré ci-dessous, entraîne une erreur :
type Action func(int) func test(a int) { } func test2(a int) { } func main() { x := map[Action]bool{} x[test] = true x[test2] = false }
Erreur : type de clé de carte non valide Action
Restriction de langue
La spécification du langage Go indique explicitement que les fonctions ne peuvent pas être utilisées comme clés de carte. Cette restriction découle de l'exigence selon laquelle les clés doivent prendre en charge des opérateurs comme la comparaison d'égalité, ce qui n'est pas possible pour les fonctions.
The comparison operators == and != must be fully defined for operands of the key type; thus the key type must not be a function, map, or slice.
Par conséquent, l'utilisation de fonctions comme clés de mappage est interdite par le langage pour garantir la cohérence des comparaisons de clés. et éviter les erreurs potentielles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!