typestar

Genéricos en Kotlin

Parámetros de tipo elegidos en la llamada, acotados donde hace falta.

// T is decided at the call site; the constraint keeps it comparable.
fun <T : Comparable<T>> larger(a: T, b: T): T = if (a >= b) a else b

fun <T> firstAndLast(items: List<T>): Pair<T, T> =
    items.first() to items.last()

fun main() {
    println(larger(1408, 2590))
    println(larger("Brier", "Tolmie"))
    val (start, end) = firstAndLast(listOf("gate", "col", "cirque"))
    println("From the $start to the $end")
}

Cómo funciona

  1. fun <T : Comparable<T>> larger acepta cualquier tipo auto-comparable.
  2. El mismo cuerpo clasifica Ints y Strings; quien llama nunca nombra T.
  3. firstAndLast devuelve un Pair<T, T> y se desestructura limpio.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
403
Tokens
134
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 124 segundos.

Escribe este fragmento

Paso 1 de 3 en Genéricos y delegación; paso 22 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →