@kotlin_lang

Страница 692 из 982
Bogdan
31.05.2018
19:59:28
dimiii
31.05.2018
23:14:53
https://youtu.be/nqmBlqq-k3Y?t=1772
Жаль, что дефрагментацию памяти не завезли.

Gromyk
01.06.2018
08:49:00
привет ребята, как достучаться к активити-хосту с фрагмента? а то чёт выбрасывает "only safe or non null asserted calls are allowed"

Google
Quantum Harmonizer
01.06.2018
09:02:09
лучше бы в гугл послал)

OlegKrikun
01.06.2018
09:02:48
лучше бы в гугл послал)
этим в андроидРу займутся

Leonid
01.06.2018
09:11:09
Выглядит просто как то что getActivity возвращает nullable переменную И человека надо просто в базовую документацию послать)

Gromyk
01.06.2018
09:13:26
Уже пришёл оттуда, спасибо всем)

OlegKrikun
01.06.2018
09:15:30
если вопрос был про нулбл из getActivity()

Gromyk
01.06.2018
10:42:52
если вопрос был про нулбл из getActivity()
Да, теперь всё хорошо Спасибо

Ivan
01.06.2018
12:17:56
Ребят, кто нить делал в ktor или в спринг такое обновление в контроллере, чтобы поля, которые undefined не обновлялись в null, а просто игнорировались?

Mikhail
01.06.2018
13:32:41
можно ли как-нибудь в котлине указать явно nullability для метода из джавы, к которому у меня нет доступа?

чтобы во всех местах в проекте он подсветился как nullable

Mikhail
01.06.2018
13:35:58
кажется, я придумал решение

Quantum Harmonizer
01.06.2018
13:36:45
завернуть в свой метод?

Google
Mikhail
01.06.2018
13:36:47
метод X, возвращающий тип Foo! оборачиваем в екстеншн safeX(...): Foo?

ага

не самое надежное решение, но сойдет

Роман
01.06.2018
13:38:00
метод X, возвращающий тип Foo! оборачиваем в екстеншн safeX(...): Foo?
я представляю будни котлин программиста, оборачивающего все java методы в safe$name

Vladimir
01.06.2018
13:38:19
А интересно, можно ли это состряпать из поддержки jsr-305 и package-info.java в чужом пакете

Роман
01.06.2018
13:38:58
можно asm'ом состряпать и патчить при загрузке

Mikhail
01.06.2018
13:39:17
А интересно, можно ли это состряпать из поддержки jsr-305 и package-info.java в чужом пакете
это поломает кучу кода, который не подозревает о nullability

екстеншны хоть позволяют делать это инкрементально

Vladimir
01.06.2018
13:41:16
Ну на уровне методов без модификации библиотек, видимо, только так. Но безопасности это не прибавляет нисколько

Vadim
01.06.2018
21:13:38
https://en.wikipedia.org/wiki/Kotlin-class_destroyer никогда бы не подумал по названию ссылки…

Igor
01.06.2018
21:31:44
В 2012 году Бреслав на докладе в fprog это рассказывал ? (кстати годный доклад был)

Nameless
02.06.2018
14:19:21
как быть?





Yaroslav
02.06.2018
14:23:36
как быть?
убрать while(true)?

Nameless
02.06.2018
14:26:33
убрать while(true)?
низя, хочу бесконечный цикл и выходить из него по ретерну

как в котлин еще можно сделать бесконечный цикл в духе for (;;) { }?

Egor
02.06.2018
14:27:15
Какой-то джаваскрипт кодинг-стайл

А почему нельзя просто кастовать к инту?

Nameless
02.06.2018
14:28:58
А почему нельзя просто кастовать к инту?
потому что касты это плохо в строго типиизрованном языке

Google
Egor
02.06.2018
14:29:38
Складываю оружие, сэр

Nameless
02.06.2018
14:30:20
Складываю оружие, сэр
ну серьезно, кастить в новом модном молодежном языке

Roman
02.06.2018
14:31:29
async<Int> { ... }

Nameless
02.06.2018
14:32:25
Egor
02.06.2018
14:33:23
А внутрь асинка разве что-то передается?

Какой тип у it?

Nameless
02.06.2018
14:34:28
Какой тип у it?
очевидно же какой для котлин программиста, Int

Egor
02.06.2018
14:35:27
minutochku

Нельзя написать такой код

В котлине почти все - выражение

В т.ч. и return

И.е. return ... -> Unit

Или нет

Хз

Nameless
02.06.2018
14:38:07
Нельзя написать такой код
можно же, посмотри скриншоты я смог, и он даже работает с костылем ввиде throw exception

Egor
02.06.2018
14:38:30
throw Exception же никогда не выполняется, ну

Igor
02.06.2018
14:38:47
async { val trueCondition = true while (trueCondition) { return@async it } throw RuntimeException("FAIL") }

Egor
02.06.2018
14:39:19
async получает тип Unit, потому что внутри него находится while, который является выражением, которое ничего не возвращает

Nameless
02.06.2018
14:39:34
throw Exception же никогда не выполняется, ну
в том то и фигня, что либо получаю варнинг, либо не компилируется, вот такой язык

Egor
02.06.2018
14:39:39
Потому что внутри него находится return, который возвращает в функцию наверху

Google
Egor
02.06.2018
14:40:12
Короче, кто там паззлеры делает на конференции, пихайте этот кейс себе в доклад

Nameless
02.06.2018
14:40:19
async { val trueCondition = true while (trueCondition) { return@async it } throw RuntimeException("FAIL") }
это к чему? костыль ввиде експешена остался, и зачем то условие перенесено в переменную

выглядит все равно плохо

Igor
02.06.2018
14:40:48
в том то и фигня, что либо получаю варнинг, либо не компилируется, вот такой язык
Ты просто хочешь дичь от языка и никого такой корнер-кейс вообще не интересует, что бы запариваться с компилятором.

balolam
02.06.2018
14:40:51
Почему бы не использовать producer?

Egor
02.06.2018
14:42:01
выглядит все равно плохо
Вот так разве что while (true) { it }

Возвращать прямо в асинк из вайла не получится, это как пытаться достать мозг через нос мизинцем ноги

Своего друга

Igor
02.06.2018
14:42:51
Как вариант, если считаешь себя умнее компилятора то повесить supresswarning @Suppress("UNREACHABLE_CODE") throw RuntimeException("FAIL")

Nameless
02.06.2018
14:43:28
Egor
02.06.2018
14:43:43
Причем там можно даже не исключение кидать, а возвращать значение, чтобы дженерик был Inferred

Типа, while (true) { return@async it } 0 С суппресс варнингом

Nameless
02.06.2018
14:45:59
Почему бы не использовать producer?
да спасибо, просто интересовало как имея конструкции которые используются у меня разрулить ситуацию красиво, и после джавы такая проблема оказалась для меня внезапной, если не ошибаюсь в джаве в подобном сценарии все нормально отработает. В котлине не эксперт

Egor
02.06.2018
14:47:23
Как говорится, если умник, то пи**уй в Руби

Igor
02.06.2018
14:47:26
По факту там все логично, Kotlin видит что из функции может вернуться - в случае 1 Int (из return@) либо Nothing (из throw) - в случае 2 Int (из return@) либо Unit (из всего while) Дальше он выводит наиболее общий тип, в первом случае это Int, во втором Any. То что компилятор не проверят, что цикл бесконечный - ну блин, это очень узкий кейс, да и у нас тут не Coq с Idris

Nameless
02.06.2018
14:48:07
Как говорится, если умник, то пи**уй в Руби
спасибо, не знал такой поговорки

Google
Nameless
02.06.2018
14:50:52
В джава нет корутин)
да тут проблема с дженириками\определением возвращаемого значения, а не с корутинами

balolam
02.06.2018
14:51:15
Тут как бы компромис

Почитайте что такое Nothing и какие плюшки он несёт, вы удивитесь, но вы это использовали и не замечали

Дак что нет. С дженериками тут даже лучше

Просто не стоит переносить мышление написания кода на Java в Kotlin, отличия как бы есть

Egor
02.06.2018
14:53:35
да тут проблема с дженириками\определением возвращаемого значения, а не с корутинами
В жабе так-то и адекватного лямбда-исчисления нет, чтобы такие кейсы крутить

balolam
02.06.2018
14:54:07
Зато теперь Java втянула себе var)

Egor
02.06.2018
14:54:11
Ссаные @FunctionalInterfaceы это насмешка над ФП

Vladimir
02.06.2018
15:21:27
А компилятор ругается тоже, или только инспекция в идее?

Может, он не считает этот код недостижимым

Quantum Harmonizer
02.06.2018
15:28:48

Страница 692 из 982