typestar

Nulls en colecciones en Kotlin

Parsea entrada sucia sin un solo try/catch.

fun main() {
    val logged = listOf("12.4", "n/a", "9.8", "", "15.1")

    // toDoubleOrNull turns bad input into null instead of throwing.
    val parsed = logged.map { it.toDoubleOrNull() }
    println(parsed)

    // mapNotNull parses and drops the failures in one pass.
    val depths = logged.mapNotNull { it.toDoubleOrNull() }
    println("Mean of ${depths.size} readings: ${depths.average()}")

    println("First good one: ${parsed.firstOrNull { it != null }}")
}

Cómo funciona

  1. toDoubleOrNull convierte strings malos en null en vez de excepciones.
  2. mapNotNull transforma y suelta los null en una sola pasada.
  3. firstOrNull con predicado encuentra al primer sobreviviente, o null.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
440
Tokens
98
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 84 segundos.

Escribe este fragmento

Paso 3 de 3 en Seguridad ante null; paso 18 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →