
Alex
16.03.2018
21:13:48
и так можно, просто можно, это меня радует

Andrew
16.03.2018
21:13:57
Мы тебе о том, что Bar().ext() -- это буквально создать объект bar, вызвать на нём экстеншн-функцию и выкинуть объект bar. Это ожидалось?
Как известно, из буханки хлеба, пары антеннок и прочей мелочи можно собрать троллейбус, но зачем? :)

Alex
16.03.2018
21:17:36
по принципу let{}, который в байт коде создает 2 ссылки, обсолютно согласен, тут их должно быть если я правильно посчитал аж 3 лижних, я и не спорил

Google

oehdhs
16.03.2018
21:17:42

Andrew
16.03.2018
21:19:48
А как же BarFactory?
Дык вызывается внешний экстеншн на T, который Foo, а внутренний вызывается на Bar, но с его результатом ничего не делают. Разве что если он сам в лямбде заберёт эту ссылку -- но это выглядит слегка пахнущим интерфейсом.

Alex
16.03.2018
21:25:52
на самом деле была такая идея
/ - быстро
|
/ - удобо читаемо
если есть множество вызовов по сути одинаковых функций, ресурс не ограничен. companion object использовать нельзя, то почему бы упереться
ну например так
Foo()
.extention<Foo, Foo.Bar> {
doSomething()
}
.extention<Foo, Foo.Bar> {
doSomething()
doSomething()
}
.extention<Foo, Foo.Bar> {
doSomething()
}
*упороться, но по сути самое клевое в котлине что и так можно написать, всю программу

Arsen
16.03.2018
22:38:44
foo(strings = *arrayOf("a", "b", "c"))"Фрагмент из доков" что за звездочка перед методом?

oehdhs
16.03.2018
22:39:40
может vararg?

Arsen
16.03.2018
22:41:36
да точно, Spread Operator.

Dmitry
17.03.2018
07:40:33
То

Сергей
17.03.2018
11:12:15

Жабра
17.03.2018
11:16:18

Ivan
17.03.2018
11:23:58

Mi
17.03.2018
11:52:14
мерзкий синтаксис (((
spread operator из питона пришёл, и конечно было бы приятнее передавать как обычный варарг

Сергей
17.03.2018
11:52:43

Google

Сергей
17.03.2018
11:52:47
Который реально удобнее

Mi
17.03.2018
11:53:55
ты немного путаешь, ... в джаве служит для объявления варарга, а spread оператор нужен для преобразования обычного массива в варарг
в котлине сделали так, чтобы было видно при передаче параметра, варарг там или нет

Quantum Harmonizer
17.03.2018
11:57:46

Mi
17.03.2018
11:59:07

Mikhail
17.03.2018
12:39:35
В жаваскрипте для тех же целей используется ...
Имхо, выглядит лучше

Жабра
17.03.2018
15:28:59
Кто-нибудь тестировал, как gson-ом быстрее всего парсить? Руками или доверить gson-у?
Или вообще написать какой-то кастомный парсер?

Sergey
17.03.2018
15:29:43
"быстрее" в плане написания кода или производительности?
если у тебя жсон не в десятки мегабайт, то вообще без разницы как парсить

Anton
17.03.2018
15:30:08
ты думаешь напишешь парсер быстрее чем гугловский гсон?)

Sergey
17.03.2018
15:30:21
и есть еще jackson :)

Anton
17.03.2018
15:30:23
он на рефлекшене и типа слоу

Quantum Harmonizer
17.03.2018
15:30:24

Жабра
17.03.2018
15:30:55

Quantum Harmonizer
17.03.2018
15:31:03

Жабра
17.03.2018
15:31:25

Quantum Harmonizer
17.03.2018
15:31:36
:(
Даже так: JSON не об этом.

Google

Жабра
17.03.2018
15:31:53
Ну. это я знаю

Quantum Harmonizer
17.03.2018
15:34:42
Я тут недавно плакался в других чатах, что долго парсится и ничего нельзя сделать.
Использовался org.json, я взял jsoniter (который быстрее Gson). JMH показал разниу в несколько раз. В Android на старте был такой же результат или медленнее, а уже последующие разы — быстрее.

Igor
17.03.2018
15:39:38

Жабра
17.03.2018
15:40:37

Денис
17.03.2018
15:42:24
Привет всем! Такой вопрос:
IDE рекомендует юзать run вместо блока в лямбдах.
типа emitter -> run{} вместо emitter -> {}, для чего это нужно?

Igor
17.03.2018
15:44:28
Рекомендует? Оно просто в результате некоторых рефакторингов там появляется (видимо что бы покрыть общий случай).
Я если могу, то сразу удаляю.

Денис
17.03.2018
15:47:43
ну если пишешь тупо в блоке, весь код в не серым цветом идет. По сути разницы никакой не чувствуется

Anton
17.03.2018
15:48:08
значит че то не так пишешь

Quantum Harmonizer
17.03.2018
15:48:20

Денис
17.03.2018
15:50:02
точно, лямбды .. Спасибо, думаю стоит еще раз перечитать об особенностях лямбд в котлине

Mikhail
17.03.2018
15:55:59

Anton
17.03.2018
15:57:14
и какой ваш?

Quantum Harmonizer
17.03.2018
15:57:19

Sergey
17.03.2018
15:57:35

Mikhail
17.03.2018
15:58:04
когда кому-нибудь кроме меня будет интересно, что лучше юзать для работы с json

Admin
ERROR: S client not available

Mikhail
17.03.2018
15:58:28
Интересно. На каком?
https://user-images.githubusercontent.com/5871626/37311915-670c1a8c-2649-11e8-8906-2f44fc420246.png

Quantum Harmonizer
17.03.2018
15:58:39

Sergey
17.03.2018
15:58:42
citys?

Google

Sergey
17.03.2018
15:58:44
cities?

Mikhail
17.03.2018
15:58:44
угу
больше - лучше, он там чего-то совсем зафейлился, работал, ноо крайне медленно
я знаю, что там опечатка, руки не доходят исправить, это было еще в оригинальном бенчмарке, который я форкнул

Quantum Harmonizer
17.03.2018
16:16:23

Mikhail
17.03.2018
16:25:59

Quantum Harmonizer
17.03.2018
16:26:29

Mikhail
17.03.2018
16:27:35
мерил парсинг в Map и Pojo, сериализацию из Map и Pojo

Quantum Harmonizer
17.03.2018
16:28:15

Mikhail
17.03.2018
16:29:04
напишишь бенчмарк? или хотя бы пример использования?

Quantum Harmonizer
17.03.2018
16:31:51

Mikhail
17.03.2018
16:32:29
и так всегда)

Dmitry
17.03.2018
16:35:34
Извините за офтоп, но вместо джейсон файлов по 100 мегабайт, не лучше ли парсить бинарные форматы, типа протобафа? Всяко быстрее будет. И места меньше.

Quantum Harmonizer
17.03.2018
16:37:53

Igor
17.03.2018
16:38:46
Но 100MB json очевидно не надо делать

Dmitry
17.03.2018
16:39:27
Согласен, но если у тебя 100 мегабайтный файл, но наглядным он не будет...

Quantum Harmonizer
17.03.2018
16:39:38

Igor
17.03.2018
16:39:58

Google

Sergey
17.03.2018
16:40:07
можно еще csv всякие юзать
формат для бедных)