Maison  >  Article  >  développement back-end  >  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
Susan Sarandonoriginal
2024-11-01 04:10:02639parcourir

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
}

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!

Déclaration:
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