
Cenator
25.10.2018
14:41:24

Dmitry
25.10.2018
14:42:24
в плане с классом? заменяешь interface A на open class A и добавляешь тело для fun a() и компилится

Kirill
25.10.2018
14:59:37

Andrew
25.10.2018
15:00:42

Google

Alexey
25.10.2018
15:19:12
Ну long очень походит на мамкиного оптимизатора, это далеко не самая затратная часть приложения

Beholder
25.10.2018
15:31:50
чем BigDecimal-то людей не устраивает?

Alexey
25.10.2018
15:36:54
Вот вообще хз

Kirill
25.10.2018
15:47:55
Да
Аргументы против BigDecimal будут?

ЕВГЕНИЙ
25.10.2018
15:54:22

Andrey
25.10.2018
16:03:04
сложна много букв
Уж вот в Kotlin с его экстеншенами на BigDecimal не сказал бы, что сложна и много букв

ЕВГЕНИЙ
25.10.2018
16:07:00

Andrey
25.10.2018
16:09:53
а как это решает проблему?)
Ну выражения с использованием BigDecimal записываются так же, как и для Double. Никаких тебе многословных методов типа add, subtract, multiply и прочего.
Плюс есть возможность перегрузить операторы +-*/, чтобы они ещё другие численные типы в качестве аргументов принимали и кастили их к BigDecimal

ЕВГЕНИЙ
25.10.2018
16:15:14


Алексей
25.10.2018
16:15:15
Аргументы против BigDecimal будут?
Сделайте BigDecimal a = 10 или сложите пару BigDecimal без магии операторов котлина (которые тут всё же, как я помню, не работают), или использовать без приведения типа там, где требуется int, long, byte (хотя казалось бы). Ну то есть вопрос в том, что эту штуку неудобно использовать как число.
Навесил операторов и работаешь как с числом

Google

Алексей
25.10.2018
16:16:32
Но без этого создается ощущение, что что-то тут не так

Andrey
25.10.2018
16:16:58

Алексей
25.10.2018
16:21:32

Andrey
25.10.2018
16:21:38
Сделайте BigDecimal a = 10 или сложите пару BigDecimal без магии операторов котлина (которые тут всё же, как я помню, не работают), или использовать без приведения типа там, где требуется int, long, byte (хотя казалось бы). Ну то есть вопрос в том, что эту штуку неудобно использовать как число.
Мне кажется, что вы тоже путаете BigDecimal (что-то вроде действительных чисел) и BigInteger (что-то вроде целых чисел).
Ну и плюс к тому, смотрите выше. Не думаю, что с Int вы легко бы писали выражения, если бы операторы для него не были реализованы на уровне языка, JVM и процессора

Алексей
25.10.2018
16:22:46
Согласен:) абсолютно:) но я говорил именно о том, что работа с ним в коде неуклюжая, если речь о Java:)

Andrey
25.10.2018
16:26:28

ЕВГЕНИЙ
25.10.2018
16:27:22
Вы не путаете BigDecimal и BigNiteger случаем?
мы вроде как о семестве Big* говорили? у всех у них есть свои сильные и слабые стороны, я просто не считаю что если вы можете через плюс сложнить два Big* то это чем то делает его легче, я не уверен в этом, возможно вы меня поправите.

Kirill
25.10.2018
16:27:38

ЕВГЕНИЙ
25.10.2018
16:28:22

Kirill
25.10.2018
16:29:58
Что-то всё в кучу. И богатство операций, и производительность

Алексей
25.10.2018
16:30:18

Dmitry
25.10.2018
16:30:28
так в чем проблема-то?
сложна много букв

Andrey
25.10.2018
16:30:43
Реализация Int и Long вообще говоря поганенькая, как мне кажется. Они молча "жрут" ошибку переполнения и тупо становятся отрицательными
Это на практике приводит к внезапным бесконечным циклам, отрицательным величинам там, где их быть не должно.

Egor
25.10.2018
16:34:13
Оооо, только сегодня эта статья на хабре вышла, рофл

Dmitry
25.10.2018
16:34:31
Если складываются два инта, то проверить на ошибку переполнения после сложения не так уж и трудно, нужно ведь на знак слагаемых смотреть и знак результата
Но посчитать иначе какой-нибудь хеш станет неприятнее, т.к. там переполнение - вполне нормальная вещь

Egor
25.10.2018
16:34:59
https://vk.com/wall-20629724_1118752

Google

Andrey
25.10.2018
16:38:10
С Int и Long примерно та же история, как и со связью между шириной лошадиного зада и шириной железнодорожной колеи.
Они пришли из ассемблерного представления чисел. Весьма низкоуровневые числа. При этом высокоуровневые языки болеют при работе с ними всеми проблемами этой абстракции, хотя напрямую с ассемблером никак не связаны

ЕВГЕНИЙ
25.10.2018
16:38:37

Andrey
25.10.2018
16:39:45

ЕВГЕНИЙ
25.10.2018
16:42:03

Andrey
25.10.2018
16:44:06
Ну у этих то хоть кишки можно почитать, даже взять за основу чего-нить своего, если припрёт, а вот в кишки Int, Long и Double уже гораздо сложнее залезть. С точки зрения программиста на Kotlin/Java там вообще магия внутре.

Kirill
25.10.2018
17:07:05

Денис
25.10.2018
20:16:46
@HeapyHop А это ок, что в канале Daily Kotlin ты выкладываешь запись доклада с Джокера, которая, помнится, пока предназначена только для тех, у кого был билет? Помнится, в письме с ссылкой прямым текстом просили не распространять.

Igor
25.10.2018
20:38:47

Денис
25.10.2018
20:39:04
Мне просто искренне интересно, мнение джуговцев кажется очевидным. Ругаться или что-то ещё не хочу.

Igor
25.10.2018
20:40:11
Если что-то не понравится, они сами напишут (тут же не плейлист все таки выложили)

Денис
25.10.2018
20:42:26
Окей, я вас услышал. Спасибо за ответ.

Руслан
25.10.2018
20:43:06
https://t.me/kotlin_lang/62682

Денис
25.10.2018
20:45:02

Alexey
26.10.2018
06:42:18
ну что, ребят, уже затащили корутины в прод??

Виктор
26.10.2018
06:42:40
давно ?

Alexey
26.10.2018
06:43:23

Виктор
26.10.2018
06:44:03
шикарно
проблем, связанных с именно корутинами, не было
особенно годно они на clean arch ложатся (про андроид)
во внутренних слоях suspend-функции и в презентере уже билдеры, их запускажщие и управляющие потоками
работает быстро, работает стабильно

Pavel
26.10.2018
06:57:50

Google

Жабра
26.10.2018
06:59:35

Виктор
26.10.2018
07:19:19

Pavel
26.10.2018
07:22:47

Vladimir
26.10.2018
07:25:41

Pavel
26.10.2018
07:26:41
Проблема была с прогардом

Ping
26.10.2018
07:55:13
.

Sergey
26.10.2018
08:06:27

Alexey
26.10.2018
08:08:05

Алексей
26.10.2018
08:08:21
Если покопаться - даже найду

Alexey
26.10.2018
08:08:52
есть же такой
Да, а хочется делать в ретрофитом интерфейсе просто suspend функции которые сразу модели возвращают
Но если так делать, то получается запросы в сеть не будут нормально отменяться
У Вортана в call adapter предусмотрена отмена запросов

Алексей
26.10.2018
08:09:56

Alexey
26.10.2018
08:10:06
И не переключаться на другую корутину

Алексей
26.10.2018
08:10:41
Писать suspend чтобы не писать await?

Alexey
26.10.2018
08:10:48
С suspend можно просто withContext(Common pool){}

Алексей
26.10.2018
08:11:13

Google

Alexey
26.10.2018
08:11:19

Алексей
26.10.2018
08:12:02
С deferred точно создается, а с withContext не знаю

Жабра
26.10.2018
08:13:01

Alexey
26.10.2018
08:13:38

Жабра
26.10.2018
08:13:58

Alexey
26.10.2018
08:14:18
А как ещё?
Просто переключил контекст исполнения и все, не?
На другой тред

Жабра
26.10.2018
08:21:37
Внимание в конец

Alexey
26.10.2018
08:22:51

Жабра
26.10.2018
08:23:48

Alexey
26.10.2018
08:24:27
??
Это ты из сорцов корутина взял?

Жабра
26.10.2018
08:24:45

Никита
26.10.2018
08:54:53
Что может быть не так?
val a = resultList.sortedBy { it.date.time } date это java.util.Date, если другое поле указать то сортирует нормально...

Андрей
26.10.2018
09:00:02

Никита
26.10.2018
09:00:35
почему нет?
однозначное сравнение