Junior — Middle
¿Cuáles son las particularidades del uso del tipo Nothing en genéricos?
sobes.tech AI
Respuesta de la IA
El tipo Nothing en Kotlin es un tipo especial que no tiene valores y se usa para indicar funciones que nunca devuelven un resultado (por ejemplo, que lanzan una excepción o se ejecutan indefinidamente).
En el contexto de genéricos (generics), Nothing juega un papel importante:
- Se usa como límite inferior del tipo —
Nothinges un subtipo de todos los tipos, por lo que se puede usar para indicar que un parámetro de tipo no puede tener valores. - Permite expresar la ausencia de valor — por ejemplo,
List<Nothing>es una lista que no puede contener ningún elemento. - Se aplica para indicar de forma segura la ausencia de un tipo en posiciones covariantes.
Ejemplo de uso en genéricos:
fun <T> fail(): T {
throw RuntimeException("Failure")
}
val x: String = fail() // El compilador entiende que fail() devuelve Nothing, que es un subtipo de String
O en colecciones:
val emptyList: List<Nothing> = listOf()
De esta forma, Nothing ayuda al compilador a entender que en algunos lugares no habrá valores, y permite trabajar de forma segura con estos casos en genéricos.