@kotlin_lang

Страница 977 из 982
Igor
24.10.2018
16:00:52
+1 . Тоже из-за всяких hint-ов и неявных return-мест явно прописываю return@...
Ну кстати в целом, читаемость от этого только повышается

Igor
24.10.2018
16:00:59
чтобы студия выpавнивание не сбивала)
M: Monad<F> получается надо везде явно передавать?

Igor
24.10.2018
16:02:08
Судя по всему. Более того, нужно еще и будет что-то пpидумать с retrofit-овскими сеpвисами..

Скоpее всего в итоге пpосто оставлю микpообеpтку над okhttp, но пока-что таю надежду что-то с ним пpидумать.

Google
Igor
24.10.2018
16:05:25
val reader = clientSession(Id.monad()) а с чем вызывается clientSession в реальном коде (не тесте)?

Alexey
24.10.2018
16:10:03
M: Monad<F> получается надо везде явно передавать?
К сожалению да, но не особо страшно

Igor
24.10.2018
16:11:10
К сожалению да, но не особо страшно
Вpоде кстати на arrow можно как-то это в кодoгенеpацию oфopмить. Не увеpен, нo кажется где-тo видел.

Beholder
24.10.2018
16:21:36
а на bintray чего-то файлы уже с версией 1.3.0 лежат, без всяких "-dev"

Sergey
24.10.2018
16:28:17
релизят видимо

там же корутины, ктор и котлин одновременно релизят

Alexander
24.10.2018
16:45:39
Небольшая но новость - начался курс на Coursera по Котлину от JB: https://www.coursera.org/learn/kotlin-for-java-developers

Dmitry
24.10.2018
16:49:13
Alexander
24.10.2018
16:49:56
Исакова и английский, конечно, трудно совмещаются ?
На скорости 150% особо не вижу проблемы :)

Dmitry
24.10.2018
16:50:09
Да, так лучше :)

Google
Dmitry
24.10.2018
16:52:05
Бреслава приятно слушать. Жаль, что не он основной лектор в этом курсе

Alexander
24.10.2018
16:52:51
Тоже самое что и в плагине в idea?
Ну, это точно не тоже самое, т.к. это видеокурс. Но в видео упомянули плагин, так что могу предположить (пока не утверждать, не ставил плагин), что в плагине есть что-то из этих курсов.

Mikhail
24.10.2018
16:54:32
Mikhail
24.10.2018
16:58:01


Victor
24.10.2018
16:58:54
версия небось не 2018.3? судя по диалогу



но всё же^ return@... лучше писать - как минимум из-за повышения читаемости кода

Victor
24.10.2018
17:06:31
Нет не лучше, это все java-деформация
Я соглашусь с тем, что это деформация, когда IDEA начнёт предлагать убрать такие куски кода через инспекции. А до тех пор это "ровно" и кому как удобнее. Сравни наличию скобочек, переносов и прочих оформительских изысков

Mikhail
24.10.2018
17:14:10
иначе глаза замыливает и когда реально произойдет non-local return, его не заметишь

Dmitry
24.10.2018
17:16:16
но если return@ с названием лямбды после @, то return гарантированно из лямбды

Beholder
24.10.2018
17:26:08
IntelliJ IDEA 2018.3 Goes Beta

Victor
24.10.2018
17:28:07
иначе глаза замыливает и когда реально произойдет non-local return, его не заметишь
тут тоже будет очень заметен return внутри let при выключенных hint-ах: https://youtrack.jetbrains.com/_persistent/Screen%20Shot%202018-10-24%20at%2020.19.30.png?file=74-581506&c=false&updated=1540401720770

Oleg
24.10.2018
18:50:43
ktor 1.0.0-beta-2 релизят

Sergey
24.10.2018
18:53:45
уже зарелизили



Google
Дмитрий
25.10.2018
08:02:54
кстати на счёт ktor, кто-ниубадь работал с WebSockets в нём? а то я поднять сокет поднял, а подключиться к нему не могу

BadResponseStatus возвращает





Andrew
25.10.2018
08:05:50
Сервер точно поднят успешно? Пробовали взять что-нибудь в духе https://chrome.google.com/webstore/detail/smart-websocket-client/omalebghpgejjiaoknljcfmglgbpocdp и руками подключиться и отправить сообщение?

Дмитрий
25.10.2018
08:05:56


проверил, работает через неё

Andrew
25.10.2018
08:12:42
А что происходит в Dev Tools | Network в процессе подключения из Smart Websocket Client?

Бытрый гуглёж подсказывает, что исключение кидается вот этой штукой https://ktor.io/clients/http-client/features/expect-success.html, когда респонс был >= 300

Дмитрий
25.10.2018
08:20:08


101 код возвращает, норм вроде всё

Kirill
25.10.2018
08:20:21
кстати на счёт ktor, кто-ниубадь работал с WebSockets в нём? а то я поднять сокет поднял, а подключиться к нему не могу
Смотря чем и как подключаться. Там же нужно дополнительные заголовки передавать а-ля protocol upgrade

Andrew
25.10.2018
08:20:58
Ну ktor-client об этом знает, всё должно быть хорошо.

Kirill
25.10.2018
08:21:19
Я цеплялся index.html с кусочком js внутри. Прям var ws = new WebSocket(...) и понеслась

Дмитрий
25.10.2018
08:22:11
извне подключение работает, не получается через клиента самого ktor подрубиться

Andrew
25.10.2018
08:24:10
Я бы натравил на локалхост и tcp 8080 Wireshark и глянул, что конкретно делает клиент. Единственное — Wireshark не умеет адекватно представлять вебсокетный трафик, но у вас, похоже, проблемы ещё до него. Код вроде соответствуует актуальным семплам, очевидных проблем не видно.

Дмитрий
25.10.2018
08:27:58
эх, хотелось обойтись без тяжёлой артиллерии, да видно не судьба, лан, пойду расчехлять

короче сам себе злобный буратино, игрался до сокетов с авторизацией, и забыл её вырубить

а в браузере были сохранённые логин пароль, он их сам подставлял

Denis
25.10.2018
10:49:56
Подскажите, в котлине есть какое-то подобие Decimal? чтобы хранить денежеые еденицы?

Google
Vsevolod
25.10.2018
10:52:41
в котлине есть extension для работы с BigDecimal если вопрос об этом

Denis
25.10.2018
10:52:43
Есть же джавовый BigDecimal
а вообще не практике, кто нибудь это использует или всё таки всем хватает double??

Алексей
25.10.2018
10:53:43
а вообще не практике, кто нибудь это использует или всё таки всем хватает double??
Это узкоспециализированная и неудобная штука, но она быстрая и функциональная. А дальше можно итак догадаться:)

Vladimir
25.10.2018
10:55:07
а вообще не практике, кто нибудь это использует или всё таки всем хватает double??
Точные значения в double - ни в коем случае. Деньги можно хранить в long в виде копеек/центов/etc.

Denis
25.10.2018
10:56:40
благодарю!)

Alexey
25.10.2018
11:17:31
Vladimir
25.10.2018
11:18:19
Делить и складывать тоже потом лонги предлагаешь?
Складывать - да, а делить деньги - это уже что-то сложное, тут нужно что-то специализированное.

Alexey
25.10.2018
11:18:52
Vladimir
25.10.2018
11:21:22
Ну я имел ввиду да, сначало поделить и потом сложить например
Делить денежные величины - это какой-то финтех, тут уже надо быть осведомлённым о том, по каким правилам это должно выполняться. Я предложил решение для простых случаев.

Andrey
25.10.2018
11:23:42
Думаю деньги имеет смысл хранить в представлении с фиксированной запятой (до сотых долей). По крайней мере для большинства валют это так. Для деления надо прописывать правила округления исходя из принятых в финансовой отчётности. То есть деньгам соответствуют довольно специфические числа с особыми правилам для деления на целое число.

Если брать поле действительных чисел, то строго изоморфный ему тип из битовых последовательностей нереально сконструировать на практике, так как для точного представления произвольного действительного числа требуется бесконечная память.

Andrey
25.10.2018
11:40:21
Что такое надо сделать с деньгами на практике, чтобы получить иррациональное число?)
Последнее сообщение не про деньги, а вообще про проблему представления действительных чисел.

Google
Kirill
25.10.2018
14:19:26
Точные значения в double - ни в коем случае. Деньги можно хранить в long в виде копеек/центов/etc.
Интересно, влезет ли в long госдолг США в российских копейках. А лучше в валюте какой-нить банановой республики )

Алексей
25.10.2018
14:20:31
Andrew
25.10.2018
14:23:19
А в котлине ещё и ULong теперь есть — вроде x2 в помощь, а с другой стороны суммы умеют быть отрицательными, потому он не поможет.

Алексей
25.10.2018
14:26:04
обожаю эту группу

Вечно что-то новое узнаешь

Andrew
25.10.2018
14:26:37
Жаль, не о котлине обычно, да.

Алексей
25.10.2018
14:27:27
Жаль, не о котлине обычно, да.
Ну я вот про ULong не знал

Это unsigned?

Andrew
25.10.2018
14:28:06
Он самый. В 1.3 появится в виде inline class-а наряду с анаогичными для остальных целочисленных.

Cenator
25.10.2018
14:33:57
есть 2 интерфейса как в тайп аргумент передать их сумму?

а, окей, 1 имплементит другой

Dmitry
25.10.2018
14:37:45
interface A { fun a() } interface B { fun b() } fun <T> f(t: T) where T : A, T : B { t.a() t.b() }

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