Для чего нужен Nothing в Kotlin

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

Ответ

Nothing в Kotlin — это специальный тип, обозначающий отсутствие значения. Он используется в случаях, когда функция никогда не завершается нормально (например, всегда выбрасывает исключение или зацикливается).

Пример:

fun fail(message: String): Nothing {  
    throw IllegalStateException(message)  
}  

fun example() {  
    val result = fail("Error")  // Тип `result` — `Nothing`  
    println("Unreachable")      // Этот код не выполнится  
}  

Где ещё применяется:

  • В TODO() (возвращает Nothing).
  • В ветках when или if, где одна из веток не возвращает значение.
  • В обобщённых типах для обозначения пустых коллекций (например, List<Nothing>).

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