Какой bottom type в Kotlin

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

Ответ

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

Пример:

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

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

Также Nothing? (nullable вариант) — подтип всех nullable-типов, включая null.