> Что такое тип Nothing в Kotlin и чем он отличается от Unit (Kotlin, Android)
Уровень: junior · Роль: mobile · Категория: Технические вопросы
Компании: MTS, Dogma, TrendTech, Астра
Стек: Kotlin, Android
> Пример ответа
Nothing - это специальный тип в Kotlin, который обозначает "значение, которое никогда не существует". Он используется для указания того, что функция никогда не завершится нормально (например, всегда выбрасывает исключение или входит в бесконечный цикл). Тип Nothing является подтипом всех типов (включая Unit и пользовательские классы), что позволяет использовать его в местах, где ожидается любой тип, например, в throw Exception() или в ветке else в when, если все остальные ветки уже обработаны.
Unit - это тип, аналогичный void в Java, но с одним важным отличием: Unit - это полноценный объект с единственным экземпляром (синглтоном). Функции, возвращающие Unit, всегда завершаются нормально и возвращают значение Unit (которое обычно не используется). Unit не является подтипом других типов.
Основные отличия:
Nothingникогда не создаёт экземпляра;Unitимеет ровно один экземпляр.- Функция с возвращаемым типом
Nothingникогда не завершается; функция сUnitвсегда завершается. Nothing- это "нижний тип" (bottom type), подтип всего;Unit- обычный тип, не являющийся подтипом других типов.
Пример:
fun fail(): Nothing = throw RuntimeException() // никогда не вернёт значение fun doSomething(): Unit = println("Done") // всегда возвращает Unit
> Похожие задачи по mobile
В чем отличие launch от async в Kotlin Coroutines
Что такое reified в inline функциях Kotlin и зачем он нужен
Что такое companion objects в Kotlin
Можно ли пометить лямбду как inline в Kotlin
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью