Menu
Coddy logo textTech

El modismo de Set en Go

Parte de la sección Lógica y Flujo del Journey de GO de Coddy — lección 31 de 68.

Go no tiene una estructura de datos de conjunto (set) integrada como muchos otros lenguajes de programación. Sin embargo, los desarrolladores de Go han creado una solución elegante utilizando mapas para simular conjuntos, y este patrón se ha vuelto tan común que se considera Go idiomático.

El modismo de conjuntos (set) en Go utiliza un mapa donde solo te importan las claves, no los valores. Dado que necesitas almacenar algo como valor, los programadores de Go utilizan una estructura vacía struct{}. Aquí está el patrón básico:

var mySet map[string]struct{}

El struct vacío struct{} es especial porque ocupa cero bytes de memoria. Esto lo hace perfecto para conjuntos donde solo necesitas rastrear si algo existe o no, sin desperdiciar memoria en valores sin sentido.

Este enfoque aprovecha la propiedad fundamental de las claves de un mapa: deben ser únicas. Cuando agregas un elemento a tu conjunto, en realidad estás agregando una clave al mapa. La unicidad se aplica automáticamente mediante el comportamiento del mapa, lo que te brinda una verdadera semántica de conjunto.

En las próximas lecciones, aprenderás a crear, manipular y trabajar con conjuntos utilizando este patrón idiomático de Go. Esta técnica se utiliza ampliamente en las bases de código de Go para realizar un seguimiento de elementos únicos, implementar algoritmos y resolver problemas en los que se necesita una comprobación de pertenencia rápida.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Hoja de referencia

Go no tiene una estructura de datos de conjunto (set) integrada, pero utiliza mapas para simular conjuntos con el patrón idiomático:

var mySet map[string]struct{}

La estructura vacía struct{} se utiliza como el tipo de valor porque ocupa cero bytes de memoria. Las claves del mapa deben ser únicas, lo que proporciona automáticamente la semántica de conjunto para el seguimiento de elementos únicos.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo