Size: a a a

Kotlin Community

2020 May 07

AK

Alexey Kravtsov in Kotlin Community
Alexander Nozik
Ну так тогда используете результ и не паритесь, он специально для этого сделан
сейчас попробую, спасибо!
источник

AN

Alexander Nozik in Kotlin Community
или этот черный ящик выдает результаты отдельно а исключения отдельно?
источник

AK

Alexey Kravtsov in Kotlin Community
Alexander Nozik
или этот черный ящик выдает результаты отдельно а исключения отдельно?
верно, причем есть даже 2 разных источника ошибок
источник

Н

Напыщенное Эго... in Kotlin Community
Viacheslav Blinov
вот это я плюсану. Все приходят с колокольни других языков и начинают сразу хотеть чтобы как в тех языках было. Сразу возникает резонный вопрос — а зачем тогда вообще язык менять было? Я в свое время люто горел тем что в котлине мне паттерн-матчинга скаловского не хватало, но со временем понял что в котлине он мне просто не нужен уже
а зачем тогда вообще язык менять было? - а зачем языку понадобилось расширяться на другие платформы?

Вот, например, мне кажется, что nullability это частный случай union types. Т.е. не T подтип T?, а T|null
Несмотря на то, что некоторым кажется что юнион типы не нужны, они все же закрыли бы несколько значимых юзкейсов, вместо того, чтобы делать для каждого свой синтаксис:
- nullability
- catch блок
- seald классы
- лучше интероп с js/ts
Вот, например, об интеропе с js/ts никто не думал когда проектировал Kotlin. А теперь оно надо. И чтобы он был нормальный приходится все же смотреть на другой язык.
источник

AN

Alexander Nozik in Kotlin Community
Alexey Kravtsov
верно, причем есть даже 2 разных источника ошибок
Вот тогда у вас проблема. до 1.4, насколько я понимаю, нет возможности собрать Result руками и вернуть его из функции. Но я с этим не работал, так что лучше чтобы знающие люди подсказали.
источник

AK

Alexey Kravtsov in Kotlin Community
Alexander Nozik
Вот тогда у вас проблема. до 1.4, насколько я понимаю, нет возможности собрать Result руками и вернуть его из функции. Но я с этим не работал, так что лучше чтобы знающие люди подсказали.
ну я больше в ознакомительных целях с этим разбираюсь, так то везде атрибуты намекают что интерфейс может поменяться :)
источник

AN

Alexander Nozik in Kotlin Community
Напыщенное Эго
а зачем тогда вообще язык менять было? - а зачем языку понадобилось расширяться на другие платформы?

Вот, например, мне кажется, что nullability это частный случай union types. Т.е. не T подтип T?, а T|null
Несмотря на то, что некоторым кажется что юнион типы не нужны, они все же закрыли бы несколько значимых юзкейсов, вместо того, чтобы делать для каждого свой синтаксис:
- nullability
- catch блок
- seald классы
- лучше интероп с js/ts
Вот, например, об интеропе с js/ts никто не думал когда проектировал Kotlin. А теперь оно надо. И чтобы он был нормальный приходится все же смотреть на другой язык.
> мне кажется, что nullability это частный случай union types. Т.е. не T подтип T?, а T|null
Это не всем так кажется. Там Роман свою статью кидал, в ней все есть.
источник

AN

Alexander Nozik in Kotlin Community
Alexey Kravtsov
ну я больше в ознакомительных целях с этим разбираюсь, так то везде атрибуты намекают что интерфейс может поменяться :)
Там много чего сделано для оптимизации.
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Вот тогда у вас проблема. до 1.4, насколько я понимаю, нет возможности собрать Result руками и вернуть его из функции. Но я с этим не работал, так что лучше чтобы знающие люди подсказали.
Можно нужно врубить флажочек
источник

AL

Alexander Levin in Kotlin Community
Alexander Nozik
> мне кажется, что nullability это частный случай union types. Т.е. не T подтип T?, а T|null
Это не всем так кажется. Там Роман свою статью кидал, в ней все есть.
Ну, если уточнить, что T? в Котлине - частный случай union type, то вся остальная часть текста всё ещё остаётся актуальной (что union type скорее нужны, чем нет)
источник

AN

Alexander Nozik in Kotlin Community
Alexander Levin
Ну, если уточнить, что T? в Котлине - частный случай union type, то вся остальная часть текста всё ещё остаётся актуальной (что union type скорее нужны, чем нет)
Union type скорее нужны. Так же как и более человечный синтаксис для пересечений (вот единственное, пожалуй, что я бы из Dotty утащил). Но нулябли - это не совсем юнионы с точки зрения использования.
источник

Н

Напыщенное Эго... in Kotlin Community
Alexander Nozik
> мне кажется, что nullability это частный случай union types. Т.е. не T подтип T?, а T|null
Это не всем так кажется. Там Роман свою статью кидал, в ней все есть.
Речь про статью Null is your friend, not a mistake? Так я и не спорю с тем, что проблема nullability существует.
Речь о том, что текущее решение не достаточно общее.
источник

AN

Alexander Nozik in Kotlin Community
Напыщенное Эго
Речь про статью Null is your friend, not a mistake? Так я и не спорю с тем, что проблема nullability существует.
Речь о том, что текущее решение не достаточно общее.
там еще одна, про absense of value
источник

AN

Alexander Nozik in Kotlin Community
Напыщенное Эго
Речь про статью Null is your friend, not a mistake? Так я и не спорю с тем, что проблема nullability существует.
Речь о том, что текущее решение не достаточно общее.
Для нулов? Еще как достаточное. Для сум типов - нет, но это другая проблема
источник

AN

Alexander Nozik in Kotlin Community
Тут мы опять упираемся в том, что в большинстве языков нулябельность решена через суммы типов. В свое решение, которое ничуть не хуже, а в некоторых случаях значительно лучше. Не надо мешать.
источник

Н

Напыщенное Эго... in Kotlin Community
Alexander Nozik
Для нулов? Еще как достаточное. Для сум типов - нет, но это другая проблема
Не для нулов, а для чистоты языка
источник

AN

Alexander Nozik in Kotlin Community
Напыщенное Эго
Не для нулов, а для чистоты языка
Чистота языка тут не при чем. В данном случае разделена фича нулябельности и фича сум типов. Это просто выделено в две разные фичи.
источник

Н

Напыщенное Эго... in Kotlin Community
Alexander Nozik
Чистота языка тут не при чем. В данном случае разделена фича нулябельности и фича сум типов. Это просто выделено в две разные фичи.
Где тут? Я говорю о том, что она (чистота) важна и решения должны максимально общими (в том числе потому что это язык, а не швейцарский нож)
источник

AN

Alexander Nozik in Kotlin Community
Напыщенное Эго
Где тут? Я говорю о том, что она (чистота) важна и решения должны максимально общими (в том числе потому что это язык, а не швейцарский нож)
Вот нет. Вы можете решить проблему нулябельности при помощи суммы типов, усложнив синтаксис и затащив довольно тяжелую штуку. Но на самом деле нулябельность встречается примерно в 100 раз чаще, чем сумма типов. Какой смысл гвозди микроскопами забивать?
источник

Н

Напыщенное Эго... in Kotlin Community
Alexander Nozik
Вот нет. Вы можете решить проблему нулябельности при помощи суммы типов, усложнив синтаксис и затащив довольно тяжелую штуку. Но на самом деле нулябельность встречается примерно в 100 раз чаще, чем сумма типов. Какой смысл гвозди микроскопами забивать?
За тем, что union типы решают не только проблему нуллябельности. Я перечислил то, что как мне кажется, еще они решают:
- catch блок
- seald классы
- лучше интероп с js/ts
источник