Ответ
Nothing в Kotlin — это тип, который не имеет экземпляров. Он используется для обозначения операций, которые никогда не завершаются нормально (например, выбрасывают исключение или зацикливаются).
Попытка создать экземпляр Nothing приведёт к ошибке компиляции:
val nothing: Nothing = throw IllegalStateException() // ОК, но не создаёт экземпляр
val x: Nothing = Nothing() // Ошибка: Cannot access '<init>': it is private in Nothing
Пример использования:
fun fail(message: String): Nothing {
throw IllegalArgumentException(message)
}
Nothing полезен для функций, которые всегда завершаются исключением, или как тип для null в обобщённых типах (List<Nothing>).