Maison > développement back-end > Golang > Les fonctions peuvent-elles être utilisées comme clés dans Go Maps ?

Les fonctions peuvent-elles être utilisées comme clés dans Go Maps ?

Susan Sarandon
Libérer: 2024-11-01 04:10:02
original
731 Les gens l'ont consulté

Can Functions Be Used as Keys in Go Maps?

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
}
Copier après la connexion

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.
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal