Ответ
Nothing в Kotlin — это тип, который не имеет значений и используется для обозначения невозможного состояния или завершения функции (например, при выбрасывании исключения).
fun fail(message: String): Nothing {
throw IllegalArgumentException(message)
}
Поскольку Nothing является подтипом всех других типов (включая nullable), его можно использовать везде:
- В
T?(Nothing? == null) - В generic-параметрах (
List<Nothing>— пустой список) - В ветвях when/if, которые не возвращают значение
Это полезно для:
- Функций, которые всегда падают (throw)
- Пустых коллекций (
emptyList()возвращаетList<Nothing>) - Завершения корутин (
suspendCoroutine<Nothing>)