Une API d’ensemble devient utile lorsque « le même élément » a un sens précis. Les propositions Go exposent ce choix au lieu d’imposer partout l’égalité intégrée.

Proposition et fonction déjà livrée
Le dossier ouvert #80590 vise Go1.28 : ensembles, hachage personnalisé, maps ordonnées et tas générique. Il ne garantit pas la livraison de chaque paquet. L’ensemble représenté par une map conserve les opérations intégrées ; l’insertion du brouillon s’appelle Insert, pas Add.
Go 1.27 fournit déjà maphash.Hasher. Sa documentation associe hachage et égalité : deux valeurs jugées égales doivent être hachées de façon cohérente avec une même graine.
Une clé insensible à la casse exige deux choix cohérents
Imaginons une application limitée aux identifiants ASCII, traitant volontairement « ALICE » et « alice » comme égaux. Si l’égalité ignore la casse mais que le hachage utilise les octets initiaux, les deux clés peuvent aboutir dans des compartiments différents. Une recherche risque alors de manquer l’entrée attendue.
Notre schéma normalise les deux entrées vers les mêmes octets canoniques avant comparaison et hachage. C’est un exemple conceptuel, pas du code de normalisation Unicode prêt à produire. Une application internationale doit définir ses règles de normalisation et d’équivalence au lieu de généraliser ce cas ASCII.
Une collision est différente : deux valeurs inégales peuvent partager un hachage, donc la comparaison doit encore les distinguer. Le hachage aide à indexer ; il ne prouve pas une identité.
Choisir selon l’opération recherchée
Pour vérifier une appartenance avec des clés comparables, un ensemble fondé sur une map peut suffire. Pour des requêtes par intervalle ou un parcours ordonné, examinez une structure ordonnée. Pour une équivalence personnalisée ou des clés non comparables, évaluez les propositions à hachage et le coût du calcul lui-même.
Attendez un état clair des API individuelles et de la chaîne d’outils avant une migration de production. La préparation utile consiste à inventorier opérations et sémantique d’égalité. Renommer une bibliothèque locale pour suivre un brouillon mouvant ne démontre pas un gain de performance ou d’entretien.
Revue du 8 septembre : proposition Go1.28 distinguée de Hasher livré en 1.27 ; terminologie d’insertion corrigée et cohérence égalité/hachage expliquée.