
Лёша
05.12.2017
05:57:03
Если название переменной подчеркнуто, значит мутабельно
Потому подчеркивается
Если в дальнейшем переменную не собираешься переприсваивать, объявляй через val
Грубо говоря

Vladimir
05.12.2017
05:57:03

whalemare
05.12.2017
05:58:08
как-то определенно надо, но своими способностями предсказателя могу догадываться что точно не так, как ты думаешь

Vladimir
05.12.2017
05:58:15
Правильно ли я понял, что в Котлине нельзя объвить переменную, не инициализировав её сразу?

Google

whalemare
05.12.2017
05:58:27
через lateinit можно

Vladimir
05.12.2017
05:58:54

Andrey
05.12.2017
05:59:16

Gor
05.12.2017
05:59:25
правда теперь смысла в этом нету, лейтинит можно проверять проинитился или нет

whalemare
05.12.2017
05:59:40

Gor
05.12.2017
05:59:46
но он вроде через рефлексию же работает

whalemare
05.12.2017
06:00:50

Andrey
05.12.2017
06:07:21
Проблем с ними никаких не возникало ?

Лёша
05.12.2017
06:11:44

Andrey
05.12.2017
06:13:19

Vadim
05.12.2017
08:18:10
Хоть убейте не понимаю в чём разница между sealed и abstract

Google

Sergey
05.12.2017
08:21:45
abstract может иметь неограниченное кол-во наследников, sealed только те, которые указаны возле него

Siarhei
05.12.2017
08:33:37
В C# грамотно с этим, всмысле слово используется для описания содержимого класса в разных файлах.
у sealed в котлине есть практическое использование?

Oleg
05.12.2017
08:35:30

Siarhei
05.12.2017
08:38:26
thx!

Oleg
05.12.2017
08:38:37

Vadim
05.12.2017
09:07:57
Как понять возле него?
abstract может иметь неограниченное кол-во наследников, sealed только те, которые указаны возле него

Лёша
05.12.2017
09:12:15
из доки
A sealed class can have subclasses, but all of them must be declared in the same file as the sealed class itself
т.е. в другом месте ты не можешь отнаследоваться от sealed класса
если в чужой либе, класс помечен, как sealed, то опять же не сможешь от него унаследоваться

Phil
05.12.2017
09:17:13
Удобно для всяких Optional и типизованных Result.

Kirill
05.12.2017
09:18:50

Диёр
05.12.2017
09:20:09

Kirill
05.12.2017
09:21:38
а, TEA, спасибо

Сергей
05.12.2017
09:49:13
архитектура elm
Откуда растут ноги у этой аббревиатуры если не секрет? Тоже первый раз встретил.

Igor
05.12.2017
09:56:27

Igor
05.12.2017
10:05:28

Сергей
05.12.2017
10:06:43
Я про MVU, в контексте элм архитектуры я всегда оперировал как TEA

Boris
05.12.2017
10:06:46

Сергей
05.12.2017
10:10:11

Igor
05.12.2017
10:12:28
Из не давнего просмотренного вспоминаю https://youtu.be/EDp6UmaA9CM?t=31m37s

Сергей
05.12.2017
10:14:05
Спасибо!

Google

Igor
05.12.2017
10:14:49
Ты кстати в курсе что по elm (настоящему для web) есть чат? @elm_ru

Igor
05.12.2017
10:18:36

Sergey
05.12.2017
10:27:25
вопросы связанные с андроидом задавайте в @kotlin_mobile

Vadim
05.12.2017
10:56:24
Ребята, при работе с сетью, и самой связке interface/data class/connectors что можно посоветуете почитать? Заострить внимание?

Sergey
05.12.2017
11:07:22
работе с сетью в каком смысле?

Сергей
05.12.2017
11:13:42
там сейчас Reddit AMA с лидами Котлина начался
https://www.reddit.com/r/Kotlin/comments/7hoytl/kotlin_team_ama_ask_us_anything/

Igor
05.12.2017
11:18:18
ОбЪясните нулевому-в-редите “куда смотреть и чего ждать”?
Просто коменты читать в ожидание ответа Бреслава или Дмитрия?

Сергей
05.12.2017
11:19:29
Типа того, в этом суть AMA

Abraham
05.12.2017
11:20:33
Туда еще можно настрочить?

Сергей
05.12.2017
11:20:55
Плюс ты сам можешь задать вопрос на который с высокой вероятностью получишь ответ.
да, он только начался

Abraham
05.12.2017
11:21:23
Супер

Kirill
05.12.2017
11:21:42

Abraham
05.12.2017
11:23:27

Руслан
05.12.2017
11:27:15
Сразу видно кто прочитал релиз ноуты к 1.2, а кто нет :)

Vitaly
05.12.2017
11:30:50
А в котлине мы еще мапы из дата классов делать не умеем?
Я имею в виду такие кейсы:
data class Book(val id: Int, val name: String)
val book = Book(123, "abc")
namedjdbc.update(sql_query, toMap(myBook))
вооще огонь было б и чтоб без всяких рефлекшнов :))

Sergey
05.12.2017
11:32:42

Vitaly
05.12.2017
11:34:12

Sergey
05.12.2017
11:35:04
а вообще можно взять сериалайзер и сделать сериалайз в мапу)

Google

Admin
ERROR: S client not available

Vitaly
05.12.2017
11:35:25
вот я ща как раз релиз нотс читаю и наткнулся на https://github.com/kotlin/kotlinx.serialization

Sergey
05.12.2017
11:35:35
objectMapper.convertValue(obj, Map::class) как-то так

Phil
05.12.2017
11:38:31
Как всегда интересно, что там с наследованием )
И чем это лучше того же Jackson

Sergey
05.12.2017
11:43:36

Phil
05.12.2017
11:51:34
В смысле, с kotlin.jvm в kotlin.js?

Иннокентий антифа
05.12.2017
11:53:10
а то я уже собрался писать через рефлексию

Sergey
05.12.2017
11:53:29

Руслан
05.12.2017
11:54:48
Все записались на вебинар? https://info.jetbrains.com/Kotlin-Webinar-December2017.html?mail=event

Vitaly
05.12.2017
12:25:32

Gor
05.12.2017
13:20:04
Хм, а может кто посоветует как на котлине лучше делать сложные листенеры с несколькими колбеками? Обычный подход с интерфейсом занимает довольно много места, и с лямбдами (поправьте если ошибаюсь) не дружит
С другой стороны можно сделать что-то типа такого - https://pastebin.com/xBnJGHPw

Aleksandr
05.12.2017
13:20:49
колин с лямбдами не тружит? сириус?)
fun <T> login(login: String, password: String, callback: (user: User?, requestStatus: RequestStatus) -> T): CallbackStatus {

Gor
05.12.2017
13:22:45
я же про комплексный листенер говорю

Aleksandr
05.12.2017
13:23:10
а задача собственно в чем?

Gor
05.12.2017
13:23:26
создать листенер на несоклько ивентов

Aleksandr
05.12.2017
13:23:26
можно подписку реализовать

Igor
05.12.2017
13:24:19

Google

Aleksandr
05.12.2017
13:24:35
вы можете назначить одну функцию, которая будет отрабатывать

Gor
05.12.2017
13:24:36
проще в группу сбить
путем создания класса

Aleksandr
05.12.2017
13:25:16
если у вас каждый из коллбэков ожидает функцию с разными параметрами - пишите обертки

Gor
05.12.2017
13:26:11
да не параметры главное

Aleksandr
05.12.2017
13:26:12
fun <T> loginA(login: String, password: String, callback: (user: User?, requestStatus: RequestStatus) -> T) ...
fun <T> loginB(login: String, password: String, callback: (user: User?, requestStatus: RequestStatus) -> T) ...
fun <T> loginC(login: String, password: String, callback: (user: User?, requestStatus: RequestStatus) -> T) ...
вызываем loginA("username", "password", this.someCallbackFunction())