Size: a a a

Kotlin Community

2020 May 22

BP

Bogdan Panchenko in Kotlin Community
Aleksandr Semyannikov
Подскажите, а я правильно понял, что Nothing - это класс, только для того что бы можно было всякие throw использовать как выражения? Немного запутался со всеми этими Any Unit Nothing 🙂
В целом да
источник

AL

Alexander Levin in Kotlin Community
Aleksandr Semyannikov
Подскажите, а я правильно понял, что Nothing - это класс, только для того что бы можно было всякие throw использовать как выражения? Немного запутался со всеми этими Any Unit Nothing 🙂
Только - нет, но в том числе ради исключений :)
источник

OY

Oleg Yukhnevich in Kotlin Community
Andrew Mikhaylov
Так а толку, если даже для работы с коллекциями свифтовый код нужно переписывать в другой свифтовый код?
Но вообще, лучше чем ничего
источник

AL

Alexander Levin in Kotlin Community
Alexander Levin
Только - нет, но в том числе ради исключений :)
Вот вроде уже отвечал про разные юзкейсы: https://t.me/kotlin_lang/178828
источник

AN

Alexander Nozik in Kotlin Community
Aleksandr Semyannikov
Ну это да, про это я читал, вопрос скорее на кой нужен Nothing, и почему Unit нельзя было использовать для этого?
Потому что юнит можно реально вернуть из функции, а Nothing нет
источник

AA

Andrey Antipov in Kotlin Community
Aleksandr Semyannikov
Ну это да, про это я читал, вопрос скорее на кой нужен Nothing, и почему Unit нельзя было использовать для этого?
Unit обозначает "успешное ничто" - результат исполнения блока кода, который не вычисляет ценных для дальнейшего использования результатов, например println("foo") выводит строку "foo" в консоль (побочное действие), а значимого непосредственного результата не имеет.

Nothing обозначает "неуспешное ничто" или противоречие - блок кода, который не может успешно завершиться. Основная цель - указать компилятору, что дальнейшая проверка соответствия типов не нужна, так как до строчек за той, которая возвращает Nothing мы дойти при исполнении не можем (эта строчка должна упасть по определению Nothing)
источник

AA

Andrey Antipov in Kotlin Community
В общем Nothing очень нужен системе выведения типов. В частности используется для выведения не нуллабельного типа в выражениях вида a ?: throw ...
источник

AN

Alexander Nozik in Kotlin Community
Andrey Antipov
Unit обозначает "успешное ничто" - результат исполнения блока кода, который не вычисляет ценных для дальнейшего использования результатов, например println("foo") выводит строку "foo" в консоль (побочное действие), а значимого непосредственного результата не имеет.

Nothing обозначает "неуспешное ничто" или противоречие - блок кода, который не может успешно завершиться. Основная цель - указать компилятору, что дальнейшая проверка соответствия типов не нужна, так как до строчек за той, которая возвращает Nothing мы дойти при исполнении не можем (эта строчка должна упасть по определению Nothing)
Мое любимое - это Nothing?. Он даже встречается периодически.
источник

AA

Andrey Antipov in Kotlin Community
Alexander Nozik
Мое любимое - это Nothing?. Он даже встречается периодически.
null или упал
источник

AN

Alexander Nozik in Kotlin Community
Andrey Antipov
null или упал
Ну нет, оно на самом деле появляется не в явных типах функций, а когда что-нибудь от дженерика наследуется.
источник

RE

Roman Elizarov in Kotlin Community
Тип Nothing? выведется если написать val x = null
источник

AA

Andrey Antipov in Kotlin Community
Alexander Nozik
Ну нет, оно на самом деле появляется не в явных типах функций, а когда что-нибудь от дженерика наследуется.
Ну а разница? Дженерик класс можно рассматривать как набор взаимосвязанных дженерик функций.
источник

AN

Alexander Nozik in Kotlin Community
Roman Elizarov
Тип Nothing? выведется если написать val x = null
👍
источник

AN

Alexander Nozik in Kotlin Community
Andrey Antipov
Ну а разница? Дженерик класс можно рассматривать как набор взаимосвязанных дженерик функций.
Я к тому, что там этот тип осмысленно использовать.
источник

AA

Andrey Antipov in Kotlin Community
Ну для функций тоже выражение null или упал смысл имеет. Как минимум, она может успешно завершиться.
источник

IO

Iaroslav Orlov in Kotlin Community
источник

AA

Andrey Antipov in Kotlin Community
👍
источник

ДК

Дима Красилов... in Kotlin Community
Здаров ребят, какие подводные камни при использовании корутин в спринг аппликейшне?
источник

AN

Alexander Nozik in Kotlin Community
Дима Красилов
Здаров ребят, какие подводные камни при использовании корутин в спринг аппликейшне?
Тупые разрабы?
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Тупые разрабы?
Толсто
источник