
Andrew
20.03.2018
10:07:13
это точно, это английским по белому по ссылке написано

Alexey
20.03.2018
10:07:36
Ах да это и в доке написано
В коде всмысле

Mikhail
20.03.2018
10:09:18

Google

Quantum Harmonizer
20.03.2018
10:10:11

Mikhail
20.03.2018
10:10:33
ну очепятался

Quantum Harmonizer
20.03.2018
10:10:50
не пойму, что ты имеешь в виду

Andrew
20.03.2018
10:11:54
Семантику reference by value без value-типов на JVM никто не нарушает, inline-классы не об этом же.

Тимур
20.03.2018
10:12:11

Quantum Harmonizer
20.03.2018
10:12:36
у инлайн-классов нет ни класса ни экземпляров в рантайме

Andrew
20.03.2018
10:12:37
Насколько я понимаю, для сгенерированного байткода разницы между typealias и inline class вообще нету — поправьте меня, если это не так.

Vladimir
20.03.2018
10:12:43

Mikhail
20.03.2018
10:12:45

Quantum Harmonizer
20.03.2018
10:12:46

Mikhail
20.03.2018
10:12:58

Тимур
20.03.2018
10:18:05

Andrew
20.03.2018
10:18:53

Google

Quantum Harmonizer
20.03.2018
10:19:02
и не планируют

Тимур
20.03.2018
10:19:41
в статье на хабре есть слово "пока"
то есть не исключено, что потом сделают

Quantum Harmonizer
20.03.2018
10:19:54

Тимур
20.03.2018
10:20:46
https://habrahabr.ru/company/redmadrobot/blog/351516/

Quantum Harmonizer
20.03.2018
10:21:09
Ну, это писали RedMad, не JB

Bogdan
20.03.2018
10:22:57
Ну, это писали RedMad, не JB
да вроде и на митапе говорили, что они попытаются, может не сразу, мож 1.4, Сейчас они больше для корунтин делают

Quantum Harmonizer
20.03.2018
10:23:21

Тимур
20.03.2018
10:23:34
да в принципе тут нет ничего невозможного
а фича крайне полезная для performance

Bogdan
20.03.2018
10:25:52

Тимур
20.03.2018
10:27:53
это можно сделать очень просто: берем inline класс и во всех местах использования заменяем его на его внутренности
собственно, вся вот и вся фича

Quantum Harmonizer
20.03.2018
10:28:28

Andrew
20.03.2018
10:28:54
если б всё было так просто, они бы наверняка сразу их и заимплементили полноценными бы.

Bogdan
20.03.2018
10:29:20
да и в компилятор это прописать не так уж и просто

Тимур
20.03.2018
10:29:49

Quantum Harmonizer
20.03.2018
10:29:58

Bogdan
20.03.2018
10:30:15

Vladimir
20.03.2018
10:30:30

Тимур
20.03.2018
10:32:11
не сказал бы что бесполезна
возвращаемый временный объект потом jvm в стек засунет и все будет ок

Quantum Harmonizer
20.03.2018
10:32:29

Google

Andrew
20.03.2018
10:32:47
JVM без вальхаллы в стек объекты засовывать не умеет.

Тимур
20.03.2018
10:32:52
можно, и jvm эту Pair заоптимизирует

Quantum Harmonizer
20.03.2018
10:33:07
другое дело, что можно запилить глобальный AtomicReferenceArray и возвращать индекс в нём ;)

Тимур
20.03.2018
10:33:15

Quantum Harmonizer
20.03.2018
10:33:26

Andrew
20.03.2018
10:34:52
ого

Тимур
20.03.2018
10:35:06
На то они и inline, чтобы его не было, не?
тут основная фишка, чтобы заинлайнить долгоживущие объекты, которые, например где то в коллекциях хранятся
а то которая передается в параметрах и возвращается как результат jvm и сама осилит

Quantum Harmonizer
20.03.2018
10:35:22

Vladimir
20.03.2018
10:36:01

Andrew
20.03.2018
10:36:17

Тимур
20.03.2018
10:36:21
зачем?
потому что много накладных расходов, если 100500 таких мелких объектов

Quantum Harmonizer
20.03.2018
10:36:37

Konstantine
20.03.2018
10:36:45
Нужон сахор.
Есть List<MyObject>.
У MyObject внутри тоже есть List.
Нужно посчитать, сколько в сумме у всех объектов элементов в листах.
Есть что-то подходящее?

Quantum Harmonizer
20.03.2018
10:37:06

Andrew
20.03.2018
10:38:13
listOfMyObjects.map { it.innerList.size }.sum()

Quantum Harmonizer
20.03.2018
10:39:44
listOfMyObjects.fold(0) { acc, obj -> acc + obj.innerList.size() }
без промежуточной коллекции

Andrew
20.03.2018
10:40:18
acc +
а вообще да, эффективнее

Quantum Harmonizer
20.03.2018
10:40:46

Google

Andrew
20.03.2018
10:41:41
вот потому я системный софт и не пишу — создаю тут лишние коллекции, даже не задумываясь :)

Konstantine
20.03.2018
10:43:07
Отлично, спасибо
Блин. А filter оказывается только возращает лист. Есть ли возможность отфильтровать именно сам объект листа?

Quantum Harmonizer
20.03.2018
10:50:05

Konstantine
20.03.2018
10:50:18
Нема такого.

Quantum Harmonizer
20.03.2018
10:50:40
У тебя MutableList?

Konstantine
20.03.2018
10:50:41
Хм, точно.

Admin
ERROR: S client not available

Konstantine
20.03.2018
10:51:33
Но всё равно не появляется метод сий чудный.

Quantum Harmonizer
20.03.2018
10:54:25

Konstantine
20.03.2018
10:56:41
Спасибо)

Mikhail
20.03.2018
10:57:03

Konstantine
20.03.2018
10:57:22

Mikhail
20.03.2018
10:59:33
ладно, не буду допытываться. я просто уже не помню случая, где мне надо было in place фильтровать
но может проблема в том, что я Android разработчик?

dobrowins
20.03.2018
11:15:52
Всем привет!
Взываю к богам котлина (тем, кто может спарсить котлиновский код в байткод в уме) — возможно ли использовать совместно destructuring declarations и ленивую инициализацию?
Т.е., как сделать такое val (pairFirst, pairSecond) by lazy { getPair() }
очень надо, но обычный делегат lazy требует инициализацию — а именно этого хотелось бы избежать до поры до времени

Andrew
20.03.2018
11:19:55
Всё-таки var pair by lazy ... — это объявление свойства, деструктуризация тут вряд ли вот в таком виде применима.
А без неё никак?
private val pair by lazy { getPair() }
val pairFirst by lazy { pair.first }
val pairSecond by lazy { pair.second }

dobrowins
20.03.2018
11:25:28

Google

Sergey
20.03.2018
11:26:53
хм, а доступны ли будут нам контракты?
если они щас есть в stdlib, а мы их не можем у себя в коде писать
в 1.3 версии что-то изменится?

Andrew
20.03.2018
11:27:34
Вроде в недавнем докладе обещали движения в этом направлении.

Жабра
20.03.2018
11:52:16
Как в Java/Kotlin узнать размер сущности в байтах? Как sizeof в С

Bogdan
20.03.2018
11:52:46

Жабра
20.03.2018
11:53:22
зачем тебе
Работаю с одной Сишной библиотекой, там нужно

Quantum Harmonizer
20.03.2018
11:54:09
только в процессе компиляции/оптимизации он может меняться

Bogdan
20.03.2018
11:54:38

Quantum Harmonizer
20.03.2018
11:55:03

Bogdan
20.03.2018
11:55:44

Жабра
20.03.2018
11:56:18

Vladimir
20.03.2018
11:56:24

Жабра
20.03.2018
11:56:44

Dmitry
20.03.2018
11:57:01

Vladimir
20.03.2018
11:57:20

Quantum Harmonizer
20.03.2018
11:57:20