
Alexey
14.03.2018
16:11:34

Boris
14.03.2018
16:14:19
Оффтоп, конечно, предлагаю заканчивать

Руслан
14.03.2018
16:16:53
И inline классы!

Google

Boris
14.03.2018
16:18:09
Странная у него декларация
У резалта

Руслан
14.03.2018
16:18:25
Вот как _возможно_ будет выглядеть inline классы, в данном случае Result

Boris
14.03.2018
16:20:03

Roman
14.03.2018
16:20:06
а запись будет где-либо доступна? а то сейчас нет возможности подключиться

Руслан
14.03.2018
16:20:20
Она не youtube останется наверняка
Не думаю что её удалят сразу

Andrey
14.03.2018
16:20:38
а что значит, когда "get()" присваивают значение?

Руслан
14.03.2018
16:20:50
https://t.me/TheDailyKotlin/25 - вот трансляция если что

Boris
14.03.2018
16:22:02
Немного криво выглядит такая реализация
Хоть и рабочая

Google

Andrew
14.03.2018
16:22:59
Зато одно поле вместо двух. В целом идея с приватным классом вполне себе клёвая.

Руслан
14.03.2018
16:23:34

Boris
14.03.2018
16:25:14

Andrew
14.03.2018
16:25:50
а вот тебе и вопрос о юнионах :)

Boris
14.03.2018
16:26:45
Наверняка

Andrew
14.03.2018
16:27:19
только что спросили об алгебраических типах — ответом было "у нас есть sealed, правда они не совмещаются с инлайн-классами".
так что считай ответа не было :D

Boris
14.03.2018
16:28:05
Аа
Я просто не смотрю

Andrew
14.03.2018
16:28:58
ну Руслан предусмотрительно дублирует инфу, а я завтыкал, прошу прощения :)

Andrey
14.03.2018
16:32:28

Руслан
14.03.2018
16:33:48
Тут думаю понятно

Ivan
14.03.2018
16:34:59
О,даааа

Руслан
14.03.2018
16:35:16

Ivan
14.03.2018
16:35:18
Для котлин нейтив бесценно

Andrew
14.03.2018
16:36:33
Чую, будет на границе с JNI тоскливо — каст на касте и кастом погоняется.
А вообще да, можно будет тут же выкинуть kotlin-unsigned :) И с нэйтивом круто.

Руслан
14.03.2018
16:37:17

Andrew
14.03.2018
16:38:19
Да, и именно эти jint / jlong будут в сишном интерфейсе :( а он уже первым делом будет кастовать к uint32_t и uint64_t.

Google

Nikita
14.03.2018
16:39:24
Народ - а можете в кратце рассказать приемущества и кейсы где было бы удобно использовать эти же inline классы? Что под капотом у нового лонг и инт, максимальные значения надеюсь будут больше?

Ivan
14.03.2018
16:40:27
Ну я так понимаю что примерно там же где и value types

Andrew
14.03.2018
16:40:33
inline-class — это чёт вроде typealias, только на самом деле на стороне котлина создаёт новый тип, а не просто добавляет новое имя существующему.

Руслан
14.03.2018
16:41:38

Andrew
14.03.2018
16:41:54
typealias Temperature = Float
val temp: Temperature = 1.0
val f: Float = temp // валидно
inline class Temperature(t: Float)
val temp: Temperature = 1.0
val f: Float = temp // ошибка компиляции

Nikita
14.03.2018
16:42:28
я понял. Но вот профит так и не вижу)

Руслан
14.03.2018
16:42:48
Кажется что это чисто про перформанс

Andrew
14.03.2018
16:43:29
inline class Temperature(t: Float)
inline class Price(cents: Float)
val p: Price = Temperature(1.0) // ошибка компиляции
аналогичный пример с тайпалиасами скомпилируется
ну и да, инлайн-классы дадут возможность определять любые свойства на этом типе, в т.ч. переопределять операторы и тустринги.

Boris
14.03.2018
16:44:59
А какие огорчения есть инфа?

Boris
14.03.2018
16:45:06
Помимо одного поля

Andrew
14.03.2018
16:45:48
А профит инлайна перед обычным классом — да, перформанс, на каждый обычный класс будет по два объекта (сам объект и то, что под капотом лежит), инлайн — один.
и с примитивами без бокса он работать будет.

Руслан
14.03.2018
16:46:00

Andrew
14.03.2018
16:46:02
Нет, только об одном боле сказали.

Boris
14.03.2018
16:47:02
?
Юнион можно было бы сделать не сложно с оверхедом

Руслан
14.03.2018
16:49:38

Ivan
14.03.2018
16:51:53

Google

Boris
14.03.2018
16:53:41

Руслан
14.03.2018
16:54:01

Andrew
14.03.2018
17:00:12
почему нету SAM для Kotlin-интерфейсов: "а мы думали, что всем просто хватит функциональных типов" :D

Руслан
14.03.2018
17:01:22

Andrew
14.03.2018
17:01:27
(правда, зачем они нужны при наличии функциональных типов и инлайн-классов?)

Руслан
14.03.2018
17:02:09

Admin
ERROR: S client not available

Andrew
14.03.2018
17:02:58
¯\_(ツ)_/¯
ребята, пришедшие из Kotlin/JS, не поймут
а вот и легаси в котлине — ключевое слово нужно потому, что для обычных интерфейсов sam-правила не хотят вводить, чтобы не сломать старый код

Mikhail
14.03.2018
17:05:16
лучше бы вообще без этого

Andrew
14.03.2018
17:06:44
согласен

Mikhail
14.03.2018
17:08:40
если кто-то не хочет расставаться с джавовыми привычками - пускай страдает

Руслан
14.03.2018
17:09:42

Andrew
14.03.2018
17:10:20
я готов поставить подпись, куда идти?)
по-моему ж когда глобально собирали желаемые фичи, против SAM для котлина немало голосов было

Руслан
14.03.2018
17:11:05

Даниил
14.03.2018
17:11:11
ооо, круто

Google

Mikhail
14.03.2018
17:11:27
кто все эти люди??

Andrew
14.03.2018
17:11:41
значит неправильно помню, спасибо. :/

Igor
14.03.2018
17:11:52

Mikhail
14.03.2018
17:12:21
судя по результатом голосов, опрашивали питонистов

Vladimir
14.03.2018
17:13:39
У меня возникает только один вопрос: когда релиз 1.3?
Столько плюшек классных

Boris
14.03.2018
17:13:44
?

Andrew
14.03.2018
17:13:54

Руслан
14.03.2018
17:14:02

Andrew
14.03.2018
17:17:01
судя по схемке, хрен нам, а не удобство при разработке плагинов для компилятора.

Руслан
14.03.2018
17:17:52
Ну если будет Common BE (Common Backend)

Andrew
14.03.2018
17:18:02
(JVM BE + JS BE — то, что есть сейчас, Common BE — то, что сделали, когда начали делать нэйтив, JVM / JS Codegen — в планах)
а я-то думаю, что это за PR в нэйтиве о возможности композитной сборки со взрослым котлином :)

Nikita
14.03.2018
17:22:39

Руслан
14.03.2018
17:23:17
Очень хочется IR as public API

Andrew
14.03.2018
17:24:27
(оффтоп: Руслан, посмотрел недавно доклад по Ktor с BKUG — спасибо огромное, очень круто!)

Boris
14.03.2018
17:31:42
@HeapyHop огромное спасибо за трансляцию, к сожалению не было возможности посмотреть
Самому