Menu
Coddy logo textTech

L'idiome des ensembles en Go

Fait partie de la section Logique & Flux du Journey GO de Coddy — leçon 31 sur 68.

Go ne possède pas de structure de données d'ensemble (set) intégrée comme beaucoup d'autres langages de programmation. Cependant, les développeurs Go ont créé une solution élégante en utilisant des maps pour simuler des ensembles, et ce modèle est devenu si courant qu'il est considéré comme du Go idiomatique.

L'idiome de l'ensemble (set) en Go utilise une map où vous ne vous souciez que des clés, pas des valeurs. Comme vous devez stocker quelque chose en tant que valeur, les programmeurs Go utilisent une structure vide struct{}. Voici le modèle de base :

var mySet map[string]struct{}

La structure vide struct{} est spéciale car elle occupe zéro octet de mémoire. Cela la rend parfaite pour les ensembles (sets) où vous avez seulement besoin de savoir si quelque chose existe ou non, sans gaspiller de la mémoire pour des valeurs sans importance.

Cette approche exploite la propriété fondamentale des clés de map : elles doivent être uniques. Lorsque vous ajoutez un élément à votre set, vous ajoutez en réalité une clé à la map. L'unicité est automatiquement appliquée par le comportement de la map, vous offrant ainsi une véritable sémantique de set.

Dans les prochaines leçons, vous apprendrez à créer, manipuler et travailler avec des ensembles (sets) en utilisant ce motif idiomatique de Go. Cette technique est largement utilisée dans les bases de code Go pour suivre des éléments uniques, implémenter des algorithmes et résoudre des problèmes nécessitant des tests d'appartenance rapides.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Aide-mémoire

Go ne possède pas de structure de données d'ensemble (set) intégrée, mais utilise des maps pour simuler des ensembles avec le motif idiomatique :

var mySet map[string]struct{}

La structure vide struct{} est utilisée comme type de valeur car elle occupe zéro octet de mémoire. Les clés de map doivent être uniques, ce qui fournit automatiquement la sémantique d'un ensemble pour le suivi d'éléments uniques.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux