0Pricing
Kotlin Academy · Lección

Definición de enums

Conjuntos de constantes con nombre

Definición de enums es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué es un enum?

Un enum class define un conjunto fijo de constantes con nombre. Úselo cuando un valor solo pueda ser una de un grupo reducido y conocido de opciones.

  • Cada constante es una instancia del tipo enum.
  • El compilador garantiza que no sean posibles otros valores.
enum class Direction {
    NORTH, SOUTH, EAST, WEST
}

fun main() {
    val d = Direction.NORTH
    println(d)
}

¿Por qué no usar simplemente cadenas?

Las cadenas permiten errores tipográficos y valores no válidos. Un enum hace que los estados no válidos sean imposibles: el compilador rechaza cualquier valor que no pertenezca al conjunto declarado.

enum class Status { ACTIVE, INACTIVE }

fun main() {
    val s: Status = Status.ACTIVE
    println("Current: $s")
}

Declarar constantes

Las constantes se enumeran entre llaves y se separan mediante comas. Por convención, se escriben en UPPER_SNAKE_CASE.

enum class Size {
    SMALL, MEDIUM, LARGE, EXTRA_LARGE
}

fun main() {
    println(Size.EXTRA_LARGE)
}

Cada constante es un objeto

Cada constante de un enum es una instancia singleton del tipo enum. Siempre se hace referencia a ella mediante el nombre del enum, como en Color.RED.

enum class Color { RED, GREEN, BLUE }

fun main() {
    val c = Color.GREEN
    println(c == Color.GREEN)
}

Comparar valores de un enum

Las constantes de un enum se pueden comparar con ==. Como cada una es un singleton, la igualdad y la identidad de referencia coinciden.

enum class Light { RED, YELLOW, GREEN }

fun main() {
    val signal = Light.RED
    if (signal == Light.RED) println("Stop")
}

Leer la propiedad name

Cada constante expone una propiedad integrada name: la cadena exacta de su declaración.

enum class Planet { MERCURY, VENUS, EARTH }

fun main() {
    val p = Planet.EARTH
    println(p.name)
}

valueOf a partir de una cadena

La función generada valueOf() convierte una cadena coincidente en la constante del enum correspondiente. Si la cadena no coincide, se produce una excepción.

enum class Day { MON, TUE, WED }

fun main() {
    val d = Day.valueOf("TUE")
    println(d)
}

Usar enums como parámetros

Los enums son excelentes parámetros de función: quien llama solo puede pasar una de las constantes válidas.

enum class Level { LOW, HIGH }

fun setVolume(level: Level) {
    println("Volume set to $level")
}

fun main() {
    setVolume(Level.HIGH)
}

Los enums mejoran la legibilidad

El código que contiene Direction.NORTH se explica por sí mismo. En comparación con números mágicos como 0 o 1, la intención resulta evidente.

enum class Gear { PARK, DRIVE, REVERSE }

fun main() {
    val current = Gear.DRIVE
    println("Gear is $current")
}

Un ejemplo realista

Modelar un conjunto reducido de palos de cartas es un caso perfecto para un enum.

enum class Suit { HEARTS, DIAMONDS, CLUBS, SPADES }

fun main() {
    for (suit in Suit.values()) {
        println(suit)
    }
}

Enums con una sola constante

Incluso una sola constante es válida y suele utilizarse para modelar un valor que debe existir una sola vez, es decir, un singleton rudimentario.

enum class AppMode { PRODUCTION }

fun main() {
    println(AppMode.PRODUCTION)
}

Comprobación rápida

Compruebe que entiende cómo definir enums.

Resumen

Ha aprendido a definir enums:

  • enum class declara un conjunto fijo de constantes con nombre.
  • Cada constante es una instancia singleton a la que se accede mediante el nombre del enum.
  • name y valueOf() permiten convertir entre constantes y cadenas.
  • Los enums impiden los valores no válidos en tiempo de compilación.
enum class Direction { NORTH, SOUTH, EAST, WEST }

fun main() {
    println(Direction.valueOf("EAST").name)
}

Preguntas frecuentes

¿La lección «Definición de enums» es gratis?

Sí — el texto completo de «Definición de enums» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Definición de enums»?

Conjuntos de constantes con nombre Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Kotlin Academy?

No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Definición de enums»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?

Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Definición de enums
  2. Propiedades y métodos de enums
  3. Enums con when
  4. Valores y ordinales de enums
← Volver a Kotlin Academy