Ответ
Unit и Nothing в Kotlin — это специальные типы, но с разным назначением:
- Unit — аналог
voidв Java. Используется, когда функция не возвращает значимого значения. По сути,Unit— это синглтон с единственным значениемUnit.
Пример:
fun log(message: String): Unit {
println(message)
// return Unit не требуется (подразумевается)
}
- Nothing — тип, обозначающий "никогда не завершается". Используется для функций, которые всегда выбрасывают исключение или бесконечно работают (например,
fail()или бесконечный цикл).
Пример:
fun fail(): Nothing {
throw RuntimeException("Error")
}
Ключевое отличие:
Unit означает "нет полезного результата", а Nothing — "этот код никогда не вернёт управление".