Что такое класс Nothing в Kotlin

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

Ответ

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

Пример:

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

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

Особенности:

  • Подтип всех типов (Nothing? — подтип даже Any?).
  • Полезен для TODO(), throw, бесконечных циклов.
  • В отличие от Unit (возвращает Unit), Nothing ничего не возвращает.