Где используется Nothing

«Где используется Nothing» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Nothing в Kotlin — это тип, который означает "никогда не существует". Он используется в нескольких случаях:

  1. Функции, которые никогда не завершаются (например, бросают исключение или зацикливаются):
fun fail(message: String): Nothing {
    throw IllegalStateException(message)
}
  1. Как возвращаемый тип для функций, которые всегда бросают исключение (например, TODO()).

  2. В обобщенных типах для обозначения пустых коллекций:

val emptyList: List<Nothing> = listOf()
  1. В ветвях when или if, где одна ветвь возвращает значение, а другая — нет (чтобы обеспечить совместимость типов).

Nothing является подтипом всех других типов, что позволяет использовать его в ковариантных позициях.