@kotlin_lang

Страница 69 из 982
Boris
12.03.2017
19:53:55
Наверное где-то ссылку на канал опубликовали, вот очередная волна и пошла

Igor
12.03.2017
20:00:30
Наверное где-то ссылку на канал опубликовали, вот очередная волна и пошла
Вчера как-то паралелельно запостили в чатах pro.jvm/reactivex/android/android архитектура (да сижу не только в kotlin) - c каждого по зернышку

Artem
12.03.2017
20:11:16
есть канал по rx?

Boris
12.03.2017
20:12:59
Может #reactivex ?

Google
Boris
12.03.2017
20:13:51
Не то чтобы я что-то про это знал, просто в предыдущем сообщении так написано

Sergey
12.03.2017
20:14:40
Может #reactivex ?
rx это сокращение - rxJava

Igor
12.03.2017
20:16:15
есть канал по rx?
https://telegram.me/reactivex

Boris
12.03.2017
20:17:14
Мм, обычно вроде реактивный сокращают до rx, нет?

Sergey
12.03.2017
20:17:55
reactive extensions

Igor
12.03.2017
20:18:30
Мм, обычно вроде реактивный сокращают до rx, нет?
Вопрос к админу чата (я просто скопировал название)

Mike
12.03.2017
20:18:53
https://telegram.me/reactivex
спс. как раз мне пригодится

Artem
12.03.2017
20:19:25
за канал спасибище) и да Rx — сокращение от reactivex / reactive extensions

Igor
12.03.2017
20:19:54
спс. как раз мне пригодится
Надо почаще делится полезными чатами ? (а то все уже забыли про статью на geektimes)

Как правильно отключить во всем проекте warning "the feature 'corrutines' is experemental"? kotlin { experimental { coroutines "enable" } } прописал в gradle

Михаил
13.03.2017
04:37:29
вроде в настройках компилятора котлина было

Kirill
13.03.2017
05:07:27
возможно забыли прожать refresh gradle project в IDEA

Google
Igor
13.03.2017
06:31:29
возможно забыли прожать refresh gradle project в IDEA
Прожал "refresh gradle" еще раз (спешел 4U) - не помогло

Dmitry
13.03.2017
08:48:22
Всем привет! Господа, подскажите для чего в интерфейсы котлина включили приватные методы с обязательной реализацией - и как их вызывать? Пробовал имплементировать такой метод в класс и вызвать оттуда, получил ошибку доступа. А так было бы неплохо - можно бы было уйти от абстрактных классов. Пример: interface BaseView { private fun initView() { //some realization } } **** class MyFragment: Fragment, BaseView { override fun onCreate(bundle: Bundle?){ initView() // access error } }

Alex
13.03.2017
08:56:39
Ну для того же, для чего и в обычном контексте их используют) Для сокрытия реализации)) Есть у тебя метод initView, в нем 100 строк реализации, ты разбиваешь их на логичные кусочки и раскидываешь в приватные методы. В итоге когда класс реализует этот интерфейс, ты получаешь только те методы, к которым тебе нужно дать доступ. interface BaseView { fun initView() { someRealization() } } private fun someRealization() { foo() bar() } private fun foo() {} private fun bar() { if(baz()) { // do something } } private fun baz(): Boolean {} **** class MyFragment: Fragment, BaseView { override fun onCreate(bundle: Bundle?){ initView() } } Поэтому в принципе можно уже и уходить от абстрактных классов) Ну во всем конечно, но можно.

Руслан
13.03.2017
09:07:29
Используйте форматирование кода: fun code() { println(42) }



Dmitry
13.03.2017
09:09:19
хорошо, извиняюсь

Alex
13.03.2017
09:23:23
The mirror
13.03.2017
10:11:01
Кстати, в IDEA уже появилась поддержка написания gradle скриптов на котлине?

кто-нибудь пробовал?

Sergey
13.03.2017
10:21:31
https://github.com/mix-it/mixit/blob/master/build.gradle.kts

Aliaksei
13.03.2017
10:29:53
Там классный код, кстати, реактор и котлин во все щели

Sergey
13.03.2017
10:33:17
хипстерский репос)

5й спринг, 2й бут

Boris
13.03.2017
11:09:54
это вроде кто-то из работчиков спринга репу сделал

Руслан
13.03.2017
11:10:50
Да, Себастьян

Aliaksei
13.03.2017
11:10:55
Ага

Boris
13.03.2017
11:11:24
это я к тому, что хипстерство тут нипричем ?)

Руслан
13.03.2017
11:11:28
https://github.com/sdeleuze

Sergey
13.03.2017
11:53:55
это вроде кто-то из работчиков спринга репу сделал
ну это он тему котлина в спринге и толкает)

Google
Artem
13.03.2017
18:47:03
А как из java когда обратиться к классу котлина?

Руслан
13.03.2017
18:47:59
Так же как к обычному джава классу

Artem
13.03.2017
19:22:16
Спасибо. Это я у себя просто напутал немного. А может кто подсказать что по Singleton в котлине? Немного непонятно, несколько примеров разных в инете нашел

Pavel Shackih
13.03.2017
19:23:03
https://kotlinlang.org/docs/reference/object-declarations.html#object-declarations

Artem
13.03.2017
19:25:29
с помощью object я получается создаю singleton?

Igor
13.03.2017
19:25:46
https://kotlinlang.org/docs/reference/object-declarations.html#object-declarations
Меня др интересует: синглтон (object MyObject()) вроде сейчас считается антипаттерном - зачем это было в язык добавлять? Не потому же что это было в Scala?

Artem
13.03.2017
19:28:58
а как сделать singleton с dcl?)

Pavel Shackih
13.03.2017
19:29:13
ну и антипаттерн, но это не значит что его вообще нельзя использовать, не бывает же такого черного и белого. есть случаи когда это удобно и необходимо. да и вообще сама идея обжектов гораздно красивее и органичней в ооп язык ложится, в отличие от статиков джавы

Igor
13.03.2017
19:33:03
ну и антипаттерн, но это не значит что его вообще нельзя использовать, не бывает же такого черного и белого. есть случаи когда это удобно и необходимо. да и вообще сама идея обжектов гораздно красивее и органичней в ооп язык ложится, в отличие от статиков джавы
Есть куча способов сделать синглтон без object class MySingleton() val singleton = MySingleton() val lazySingleton by lazy { MySingleton() } - ленивый сингтон P.S. почему никто не отвечает на пост (также нотификации не приходят если чат замьючен)?

Хотя я вспомнил где это идеаматично - в sealed классах sealed class Tree class Node(val left: Tree, val x:Int, val right: Tree): Tree() object Leaf: Tree()

Михаил
13.03.2017
19:37:12
и никаких лишних инстанс холдеров не создает

Igor
13.03.2017
19:38:18
котлиновский обжект куда оптимальнее работает, чем выше примеры
В чем эта "куда оптимальнее работает" выражается (экономия памяти / скорость приложения)?

Михаил
13.03.2017
19:39:00
он инициализируется лениво в нестатическом блоке

по идее и экономия памяти

и тред сейф

Artem
13.03.2017
19:40:38
спасибо, @angmarr , с обжектом самая понятная реализация

Как часто у кого крашится котлин плагин в андроид студии? У меня только что это произошло

Google
Михаил
13.03.2017
19:46:35
но он работает

после этого

Admin
ERROR: S client not available

Artem
13.03.2017
19:46:47
а, ладно) спасибо

что-то не понимаю почему не работает val handler = Handler() в андроиде ?

объясните кто-нибудь плиз)

Андрей
13.03.2017
20:41:31
объясните кто-нибудь плиз)
что значит не работает? на что ругается? Может импортул не тот (их много разных есть)?

Artem
13.03.2017
20:42:31
что значит не работает? на что ругается? Может импортул не тот (их много разных есть)?
Фейспалм и помидоры мне в лицо. Точно импорт. Сорри. Что с людьми делает отсутствие сна)

Спасибо большое) а то долго бы еще тупил

Андрей
13.03.2017
20:44:07
С хендлером это распостраненная проблема (не зря же и в соседнем чате на это подумали)

Egor
13.03.2017
20:45:16
ктото пробовал перебрать мапу через map.forEach { s, s -> } ?? похоже не работает

Artem
13.03.2017
20:46:21
С хендлером это распостраненная проблема (не зря же и в соседнем чате на это подумали)
да я обычно внимательнее гораздо) так вышло. И смешно вышло)

Андрей
13.03.2017
20:54:14
ктото пробовал перебрать мапу через map.forEach { s, s -> } ?? похоже не работает
так туда на вход ентри приходит. разве он розкладывается так на переменные? вот так должно работать: for ((key, value) in map) { value.length }

Руслан
13.03.2017
20:54:35
Котлин 1.1 - да

Дестракчеринг в лямбдах есть

Руслан
13.03.2017
20:56:35
data.forEach({ k, v -> println("$k=$v")}) Вот прям взял с проекта, все работает

скорее всего проблема в том что s, s

Egor
13.03.2017
20:56:52
Что такой дестракчеринг?

Google
Андрей
13.03.2017
20:56:54
может это? http://dl4.joxi.net/drive/2017/03/13/0020/1410/1373570/70/26f9e4e544.png

Egor
13.03.2017
20:57:27
скорее всего проблема в том что s, s
Не, это сгенерировало так, я писал key, value

Руслан
13.03.2017
20:58:03
Ну может у тебя андроид, и там нету еще мапки из java 8

Если котлин 1.1 можешь вот так написать: data.forEach({ (k, v) -> println("$k=$v")})

ну а вообще к "не работает" нужно сразу текст ошибки прикладывать

Андрей
13.03.2017
21:02:01
есть еще такое http://dl3.joxi.net/drive/2017/03/14/0020/1410/1373570/70/70f0ba0d95.png Так что может из за того, что переменные без скобок объявлены?

Вон и у Руслана со скобками

Если котлин 1.1 можешь вот так написать: data.forEach({ (k, v) -> println("$k=$v")})

Egor
13.03.2017
21:04:29
@Test fun testMap() { val map = hashMapOf( 1 to 1 ) map.forEach { key, value -> Ln.i("$key $value")} }

работает тоже

странно, у меня код сложнее немного, у меня мапа - это дженерик, по идеи это не должно влиять на исполнение

Страница 69 из 982