Какое место в иерархии типов у Nothing

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

Ответ

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

Пример:

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

val result: String = fail("Error") // компилятор знает, что код после fail не выполнится

Ключевые особенности:

  • Всегда является подтипом любого типа
  • Не имеет экземпляров
  • Используется для функций, которые не возвращают результат
  • Полезен для smart-cast в Kotlin, так как компилятор понимает, что код после вызова функции с Nothing недостижим