Tipos suma como enumeraciones
⏱ Dedicación recomendada: 0 minutos
Esto considera el contenido visible y relevante, e ignora texto colapsado o marcado como opcional.
🎯 Motivación
Supongamos que estás diseñando una biblioteca para representar el estado de una conexión de red. Algunos posibles estados son Connected
, Disconnected
o InProgress
. ¿Cómo podrías modelarlos de forma segura y expresiva?
Una solución frágil sería usar una String
:
val state = "Connected"
Pero esto permite errores sutiles, como:
val state = "Connnected" // error silencioso: compila, pero está mal escrito
Enumeraciones
Las enumeraciones son una forma de representar un tipo suma en Kotlin. Permiten definir un conjunto cerrado de valores posibles, lo que mejora la seguridad y la legibilidad del código. Además, el compilador puede verificar que solo se usen valores válidos, evitando errores comunes como cadenas mal escritas o valores no válidos.
Conceptualmente, si un tipo suma tiene alternativas , podemos representarlo como una enumeración enum class
en Kotlin:
enum class TipoSuma {
Alternativa1,
Alternativa2,
// ...
AlternativaN
}
Hemos definido un tipo suma usando enum class
, que nos permite modelar un conjunto de alternativas fijas y conocidas.
Cada valor dentro del enum
representa una opción válida, y el compilador se asegura de que solo una alternativa esté presente a la vez.
Este enfoque mejora la seguridad del modelo y evita errores como comparar cadenas mal escritas o usar valores no válidos.
Cada instancia del enum
es exactamente una de las alternativas posibles. Este enfoque es ideal cuando:
- Las alternativas son fijas y conocidas de antemano.
- No necesitas asociar datos adicionales a cada caso.
Aquí podría ir un details
con la notación |
(equivalente a +
) para representar el tipo suma que se usa en varios lenguajes de programación y también en la teoría de tipos. Elegimos +
para representar el tipo suma más arriba para seguir la notación de suma.