Ответ
Nothing в Kotlin — это тип, который означает "никогда не существует". Он используется в нескольких случаях:
- Функции, которые никогда не завершаются (например, бросают исключение или зацикливаются):
fun fail(message: String): Nothing {
throw IllegalStateException(message)
}
-
Как возвращаемый тип для функций, которые всегда бросают исключение (например,
TODO()). -
В обобщенных типах для обозначения пустых коллекций:
val emptyList: List<Nothing> = listOf()
- В ветвях
whenилиif, где одна ветвь возвращает значение, а другая — нет (чтобы обеспечить совместимость типов).
Nothing является подтипом всех других типов, что позволяет использовать его в ковариантных позициях.