Тип Nothing
Тип Nothing представляет отсутствие значения
и используется для обозначения функций, которые
никогда не возвращают результат (завершаются
исключением или бесконечным циклом). Это особый
тип в системе типов Kotlin, который является
подтипом всех других типов.
Синтаксис
val variable: Nothing = throw Exception("Error")
Пример
Функция, которая всегда выбрасывает исключение
и возвращает тип Nothing:
fun fail(message: String): Nothing {
throw IllegalArgumentException(message)
}
val result: Nothing = fail("Error occurred")
Пример
Использование Nothing в условии when
для обработки исключительных ситуаций:
val input: String = "invalid"
val number: Int = when (input.toIntOrNull()) {
null -> fail("Invalid number format")
else -> input.toInt()
}
Пример
Функция с бесконечным циклом также возвращает
тип Nothing:
fun infiniteLoop(): Nothing {
while (true) {
println("Running...")
}
}
Пример
Тип Nothing может быть использован
в объявлениях переменных, которые никогда
не будут инициализированы:
val neverValue: Nothing
fun initialize() {
neverValue = throw Exception("Never initialized")
}
Пример
Использование Nothing в коллекциях
для обозначения пустых коллекций определенного типа:
val emptyList: List<Nothing> = listOf()
val stringList: List<String> = emptyList
val intList: List<Int> = emptyList