Est-il possible de définir l'égalité pour les types nommés/struct?

Après la lecture d'un une question relative à la sur l'utilisation de tranches de cartes, je suis devenu curieux au sujet de l'égalité en Aller.

Je sais que c'est possible de remplacer le equals méthode de Java Object. Est-il une manière similaire à définir comment les contrôles de types définis par l'utilisateur/les structures pour l'égalité? Si oui, il y aurait une solution de contournement pour le problème mentionné ci-dessus. J'ai pensé à l'aide de interface{} valeurs pourrait être une solution, mais j'ai reçu le message d'erreur panic: runtime error: hash of unhashable type []int.

  • Pas pour autant que je sais. Pour contourner vous pouvez convertir des objets à un hashable type pour une utilisation dans les touches ou même mettre en place une table de hachage-carte à partir de zéro en utilisant des tableaux. (D'ailleurs, certains peut-être inattendues-types sont hashable: les pointeurs, et les structures dont les membres ne sont hashable types.)
  • Voici la liste des "comparables" types: golang.org/ref/spec#Comparison_operators -- comprend les chaînes, étonnamment!
InformationsquelleAutor Bill DeRose | 2013-12-01