0Pricing
Kotlin Academy · Lección

Operadores is y as

Comprobaciones y conversiones de tipos

Operadores is y as es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 3 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.

Comprobar y convertir tipos

Kotlin ofrece dos operadores para trabajar con tipos en tiempo de ejecución:

  • is comprueba si un valor es de un tipo determinado
  • as convierte un valor a un tipo determinado

Aquí aprenderá sus variantes seguras.

El operador is

is devuelve un booleano que indica si un valor coincide con un tipo.

Es la base de los smart casts.

fun main() {
    val x: Any = "hello"
    println(x is String)
    println(x is Int)
}

Comprobación negada con !is

Use !is para comprobar que un valor NO es de un tipo determinado.

Su lectura resulta natural en las cláusulas de protección.

fun main() {
    val x: Any = 42
    if (x !is String) {
        println("not a string")
    }
}

El operador as

as realiza una conversión explícita. Si el valor realmente es de ese tipo, lo obtiene de vuelta con el tipo correcto.

Úselo cuando el compilador no pueda inferir el tipo por sí mismo.

fun main() {
    val x: Any = "hello"
    val s = x as String
    println(s.length)
}

Cuándo falla as

Si el valor no es del tipo de destino, as lanza una ClassCastException.

Esta es la variante no segura, así que úsela solo cuando tenga la certeza necesaria.

fun main() {
    val x: Any = 42
    try {
        val s = x as String
        println(s)
    } catch (e: ClassCastException) {
        println("Cannot cast Int to String")
    }
}

La conversión segura as?

as? es la conversión segura. Devuelve el valor convertido al tipo o null si la conversión es imposible.

No se lanza ninguna excepción.

fun main() {
    val x: Any = 42
    val s = x as? String
    println(s)
}

Conversión segura con Elvis

Combine as? con Elvis para proporcionar un valor alternativo cuando falle la conversión.

Este es un patrón limpio que evita errores.

fun main() {
    val x: Any = 42
    val s = (x as? String) ?: "default"
    println(s)
}

is activa los smart casts

Después de una comprobación is, normalmente no necesita as porque se activan los smart casts.

Recurra a as explícito solo cuando no pueda aplicarse un smart cast.

fun main() {
    val x: Any = "smart"
    if (x is String) {
        println(x.uppercase()) // smart cast, no as needed
    }
}

Conversiones en colecciones

Las conversiones seguras resultan útiles al filtrar colecciones heterogéneas.

filterIsInstance usa is internamente para conservar solo los elementos coincidentes.

fun main() {
    val items: List<Any> = listOf(1, "two", 3, "four")
    val strings = items.filterIsInstance<String>()
    println(strings)
}

Elegir el operador adecuado

Una guía sencilla:

  • ¿Necesita un booleano? Use is
  • ¿Tiene la certeza del tipo? Use as
  • ¿No está seguro? Use as? con un valor alternativo
fun describe(x: Any): String {
    val text = x as? String ?: return "not text"
    return "text of length " + text.length
}

fun main() {
    println(describe("hello"))
    println(describe(99))
}

Integración

Los operadores de tipos le proporcionan un control total:

  • is / !is comprueban tipos
  • as realiza conversiones, pero puede lanzar excepciones
  • as? realiza conversiones seguras y devuelve null si fallan
fun main() {
    val values: List<Any> = listOf(1, "hi", 2.5)
    for (v in values) {
        when {
            v is Int -> println("int " + v)
            v is String -> println("string " + v)
            else -> println("other")
        }
    }
}

Comprobación rápida

Ponga a prueba su comprensión de is y as.

Repaso

Ha aprendido los operadores de tipos:

  • is y !is para comprobar tipos
  • as para conversiones que pueden lanzar excepciones
  • as? para conversiones seguras que devuelven null

A continuación, hará que when sea exhaustivo para cubrir todos los casos.

Preguntas frecuentes

¿La lección «Operadores is y as» es gratis?

Sí — el texto completo de «Operadores is y as» 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 «Operadores is y as»?

Comprobaciones y conversiones de tipos 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 3 de 4.

¿Cuánto tiempo toma la lección «Operadores is y as»?

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. when como expresión
  2. Smart casts
  3. Operadores is y as
  4. when exhaustivo
← Volver a Kotlin Academy