Ответ
Nothing в Kotlin — это тип, который означает "никогда не завершается нормально". Используется в случаях:
- Функции, которые всегда выбрасывают исключение:
fun fail(message: String): Nothing {
throw IllegalStateException(message)
}
- Бесконечные циклы:
fun infiniteLoop(): Nothing {
while (true) {
println("Running...")
}
}
- В качестве аргумента для обобщенных типов, когда нужно указать, что возврата не будет:
fun <T> emptyList(): List<T> = throw Exception()
// Более точно:
fun <T> emptyList(): List<T> = fail("Empty")
- В ветках
whenилиif, которые должны охватывать все случаи, но не возвращают значение:
val result = when (value) {
is String -> value.length
else -> throw Exception() // Тип Nothing
}
Nothing помогает компилятору понять, что выполнение не продолжится после вызова, что полезно для анализа потока управления.