Avatar ·

Por qué Go no tiene una estructura de datos 'set' incorporada y cómo implementarla

¡Hola a todos! Soy nuevo en Go, vengo de Python y me desconcierta mucho la falta de un tipo de datos 'set' incorporado. En Python usaba constantemente set para verificar rápidamente la unicidad de elementos, eliminar duplicados de slices y comprobar intersecciones. Por ejemplo: ```go // ¿Cómo hago esto en Go? uniqueNames := []string{} seen := set() // ¡Esto no existe! for _, name := range names { if !seen.Contains(name) { seen.Add(name) uniqueNames = append(uniqueNames, name) } } ``` Entiendo que se puede usar map[string]bool o map[string]struct{}, pero parece un parche. ¿Por qué los desarrolladores de Go no agregaron un set normal en la biblioteca estándar? Es una estructura de datos básica que existe en casi todos los lenguajes modernos. ¿Quizás me estoy perdiendo algo? ¿Hay una forma idiomática de trabajar con conjuntos en Go sin reinventar la rueda? ¿O tengo que escribir mi propia implementación cada vez? Agradecería ejemplos de código y una explicación de la filosofía.