Nothing?Nothing — это специальный тип Kotlin, который не имеет экземпляров — невозможно создать значение этого типа. Он представляет концепцию вычисления, которое никогда не завершается нормально.
Nothing является подтипом всех типов в Kotlin (он находится в самом низу иерархии типов)Nothing?fun fail(message: String): Nothing {
throw IllegalStateException(message)
}
throw — это выражение типа NothingПоскольку Nothing является подтипом каждого типа, компилятор может корректно выводить типы в условных выражениях. Например:
val result = if (condition) "Success" else throw Exception("Failed")
Здесь throw имеет тип Nothing, поэтому компилятор выводит тип result как String — так как Nothing совместим с любым типом, это не влияет на итоговый выведенный тип.
| Концепция | Деталь |
|---|---|
| Экземпляры | Нет |
| Подтип | Всех типов |
| Частое применение | Функции, которые выбрасывают исключение или уходят в бесконечный цикл |
| Ключевой пример | Выражения с throw |
Nothing сигнализирует как разработчику, так и компилятору, что определённый путь кода никогда не вернёт значение, обеспечивая более безопасный и точный вывод типов по всей кодовой базе.
Тип Nothing является подтипом всех остальных типов в Kotlin, что позволяет присваивать его переменным любого типа без ошибок типизации.
Новый — ещё не проверен сообществом
Вы