Ответ
Unit в Kotlin — это аналог void в Java, но с ключевым отличием: это полноценный объект (синглтон), а не просто ключевое слово.
Зачем?
-
Унификация типов — функции всегда возвращают что-то, даже если это "ничего".
-
Работа с generics —
Unitпозволяет корректно использовать функции как объекты первого класса, например:fun doSomething(): Unit { ... } val action: () -> Unit = ::doSomething -
Читаемость — явное указание
Unitделает код более декларативным.
Пример:
fun log(message: String): Unit {
println(message)
// return Unit можно опустить — компилятор добавит автоматически
} Ответ 18+ 🔞
Э, слушай, давай разберём этот ваш Unit, а то народ путается, как слепой кот в сортире.
Вот смотри, в Kotlin эта штука — полный аналог нашего старого доброго void из Java, но с одной хитрой жопой. В Java void — это просто дырка от бублика, пустое место, нихуя. А в Kotlin Unit — это, ёпта, самый настоящий объект, синглтон, такая маленькая мартышлюшка, которая говорит: «Всё, работа сделана, но по факту я нихуя не вернула».
Ну и нахуя это надо, спросишь ты?
- Унификация, блядь. Чтобы не было вот этого: «Одна функция что-то возвращает, а другая — просто пшик». В Kotlin ВСЕ функции что-то возвращают. Даже если это «ничего» — это всё равно объект
Unit. Красиво, чётко, без этих ваших костылей. - Generics не сломать. Представь, ты хочешь передать функцию как аргумент. В Java с
voidначинается пиздец и танцы с бубном. А тут — легко:fun doSomething(): Unit { ... } val action: () -> Unit = ::doSomething // Всё типобезопасно, ни одной ошибки, красота!Без
Unitтакое провернуть было бы овердохуища сложнее. - Читаемость, ёбана. Когда видишь
fun log(): Unit— сразу ясно, что функция боком тебе ничего не подсунет, она просто отработает и уйдёт в закат. Прозрачнее некуда.
Пример, чтобы вообще всё стало как по маслу:
fun log(message: String): Unit {
println(message)
// Можно даже написать `return Unit`, но это как просить разрешения у собственной жены посрать. Компилятор и так всё добавит сам, не парься.
}
Короче, Unit — это не баг, а фича. Сначала кажется, что придумали велосипед, а потом понимаешь, что этот велосипед едет, не жрёт бензина и ещё кофе делает. Удобная хуйня, в общем.