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
fun <T : Comparable<T>> largeracepta cualquier tipo auto-comparable.- El mismo cuerpo clasifica
Ints yStrings; quien llama nunca nombraT. firstAndLastdevuelve unPair<T, T>y se desestructura limpio.
Palabras clave y builtins usados aquí
elsefunifval
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.
Paso 1 de 3 en Genéricos y delegación; paso 22 de 27 en Fundamentos del lenguaje.