@kotlin_lang

Страница 560 из 982
Руслан
25.02.2018
18:45:13
Например из maven репозитория достать compile("io.ktor:ktor-locations:0.9.1")

Ivan
25.02.2018
18:46:19
агонь, я весь мавен централл перерыл, его там не было...

Руслан
25.02.2018
18:52:48
https://dl.bintray.com/kotlin/ktor/io/ktor/ вот так точнее

Google
Руслан
25.02.2018
18:53:15
http://mvnrepository.com/artifact/io.ktor

ну и тут тоже хорошо ищет

Руслан
25.02.2018
18:54:41
Там есть семпл готовый в репозитории

Ivan
25.02.2018
18:54:44
А можно пример, как это выглядит? А то чет не понял(
https://github.com/ktorio/ktor/blob/master/ktor-samples/ktor-samples-locations/src/io/ktor/samples/locations/LocationsApplication.kt

Artem
25.02.2018
18:56:15
Ага, спасибо

Alexey
25.02.2018
19:40:01
Встраивание функций может увеличить количество сгенерированного кода, но если вы будете делать это в разумных пределах (не инлайнить большие функции), то получите прирост производительности, особенно при вызове функций с параметрами разного типа внутри циклов. просто меня слово встраивние пугает.. как будто оно постоянно будет компилить и встраивать кусок кода при вызове
Сильное заявление, проверять я его конечно же не буду. Вообще основной профит от инлайнов - это функции высшего порядка, типо какой нибудь fold который просто развернется в обычный цикл, без создания лямб. А тот кейс что ты описал, и jit отлично делает, и получше чем ты сам решишь поинлайнить

Quantum Harmonizer
25.02.2018
19:48:02
* без создания анонимных классов. Вне зависимости от того, лямбды используются или указатели на методы.

Думаю, что человек только начинает своё знакомство с котлином, и в таких условиях сложно воспринять документацию однозначно, правильно и с первого раза.

Vadim
25.02.2018
20:02:48
У меня есть функция: private fun showRoomPasswordRequestDialog(name: String) { AlertDialog.Builder(context, R.style.MaterialThemeDialog) .setTitle("Hello $name") }

Я могу как-то "Hello $name" вынести в strings.xml, но чтобы при вызове функции логика с подменой $name сохранилась?

Anton
25.02.2018
20:05:24
${context.getString()}

Google
Valeriy
25.02.2018
20:06:12
Я могу как-то "Hello $name" вынести в strings.xml, но чтобы при вызове функции логика с подменой $name сохранилась?
https://www.google.com.ua/search?q=string.xml+variables&oq=string.xml+variables&aqs=chrome..69i57j0l4.4655j0j7&sourceid=chrome&ie=UTF-8

Vadim
25.02.2018
20:08:22
"Hello %s", см. String.format
Я думал может в котлине как-то по круче можно это сделать)) Спасибо, буду старый добрый стринг-формат использовать

Vadim
25.02.2018
20:09:06
ну мало-ли))

Max
25.02.2018
20:48:27
вопрос по Android Studio и Kotlin сюда можно?

Bogdan
25.02.2018
20:48:49
пробуй

но есть группа

Max
25.02.2018
20:49:13
какая?

можно линк?

Bogdan
25.02.2018
20:49:22
https://t.me/kotlin_mobile

Artem
25.02.2018
21:17:25
Ребят, как бы красивее сделать такой момент: функция, которая принимает лямбду и выполняет её, если внутри неё условие выполняется. Но при этом мне надо, если не выполнилось условие в этой функции, то выполнить что-то другое. Что-то типа такого: fun ifConnected(block: () -> Unit) { if(Network.isConnected) { block() } }

толкать две лямбды не оч красиво выглядит, нет?

Igor
25.02.2018
21:18:04
толкать две лямбды не оч красиво выглядит, нет?
Билдер с лямбдами на вход давать?

Artem
25.02.2018
21:18:04
Или вообще вот как такой момент можно организовать

Artem
25.02.2018
21:18:47
if (isConnected) {...} else {...}
ну да, самый красивый вариант)

ладно, понял, спасибо)

если коллекция пустая, то каким будет результат у joinToString?

Quantum Harmonizer
25.02.2018
21:52:14
если коллекция пустая, то каким будет результат у joinToString?
логично было бы prefix + suffix, можно исходник посмотреть

Google
Artem
25.02.2018
21:52:17
а, результата не будет, потому что не сработает походу вообще

? animufag ?
25.02.2018
22:40:05
что значит не сработает

Konstantine
25.02.2018
22:47:31
что значит не сработает
Видимо имеет ввиду, что нет элементов - нет прохода по ним. Но префикс и постфикс напишутся

Vadim
26.02.2018
10:07:08
Есть sealed class sealed class RoomListItem { data class Header(val type: String) : RoomListItem() data class Room(val room: Long, val description: String, val color: Int) : RoomListItem(), Serializable } Мне нужно передать RoomListItem.Room в интент, для этого я его сделал Serializable, но приложение падает с: Caused by: java.lang.RuntimeException: Parcelable encountered IOException reading a Serializable object (name = ui.main.rooms.RoomListItem$Room)

как правильно пометить sealed класс как Serializable ?

Alexey
26.02.2018
10:11:37
sealed class RoomListItem { data class Header(val type: String) : RoomListItem() data class Room(val room: Long, val description: String, val color: Int) : RoomListItem(), Serializable } у тебя точно такой код?

Если да у тебя вообще внутренние классы получаются Почекай документацию https://kotlinlang.org/docs/reference/sealed-classes.html

data классы итак serializable

Vadim
26.02.2018
10:16:01
data классы итак serializable
а почему этот data класс нельзя тогда передать в intent.putExtra ?

Alexey
26.02.2018
10:16:51
RoomListItem у тебя не serializable

Mikhail
26.02.2018
10:33:30
или каким-то другим ключевым словом

это из темы "наоборот, чем в джавке"

пардон, *inner

Konstantine
26.02.2018
10:55:26
А, все, не на то он ругался.

Alexey
26.02.2018
10:58:58
Слишком много языков, и все "не такие как все"

Mikhail
26.02.2018
11:18:14
ребят, а как с переменными в замыкании у котлина дела обстоят?

могу я изменять интовое значение внтури замыкания внутри замыкания?

Google
Mikhail
26.02.2018
11:37:20
а то хочется в духе лиспа накатать утильный метод



Alexey
26.02.2018
11:39:33
Ссылка на var захватится

Dmitry
26.02.2018
11:39:47
И в чем проблема?

Artem
26.02.2018
11:40:54
почему не repeated++?

Сергей
26.02.2018
11:41:54
выглядит как жс

Mikhail
26.02.2018
11:42:37
почему не repeated++?
у меня детская травма, инкременты ассоциируются с процедурным программированием

Igor
26.02.2018
11:42:56
Эх, а мог бы простой цикл на корутинах написать

Mikhail
26.02.2018
11:43:19
Эх, а мог бы простой цикл на корутинах написать
корутин в проекте нет пока что?‍♂️

trashkalmar
26.02.2018
11:43:40
почему не repeated++?
В котлине var++ не инкрементит переменную

Alexey
26.02.2018
11:44:51
В котлине var++ не инкрементит переменную
Как это? https://kotlinlang.org/docs/reference/operator-overloading.html#increments-and-decrements

? animufag ?
26.02.2018
11:44:51
блин это же rx? и там есть для этого комбинаторы

Mikhail
26.02.2018
11:45:28
блин это же rx? и там есть для этого комбинаторы
да есть, но ты либо повторяешь n раз, либо повторяешь после делэя

остальное приходится руками писать

trashkalmar
26.02.2018
12:03:59
Сорри, ступил

Anatoly
26.02.2018
12:38:19
ребята, а как сказать Kotlin, что не надо заниматься подстановкой ${d} в данном случае, а оставить это скрипту: engine.eval(""" const d = 10; print(d equals to ${d}); """)

Alexey
26.02.2018
12:39:23
экранировать $

Anatoly
26.02.2018
12:41:24
экранировать $
\${d} - не решает вопрос

Igor
26.02.2018
12:41:47
По моему только так “”“…${“\${d}”}…”””

Alexey
26.02.2018
12:42:00
Два бакса подряд?

Google
Alexey
26.02.2018
12:42:10
обычно так делают экранирование

Anatoly
26.02.2018
12:42:52
Два бакса подряд?
нет, тоже не получается

Alexey
26.02.2018
12:44:54
https://kotlinlang.org/docs/reference/basic-types.html#string-templates

Да уж дичь сделали

Anatoly
26.02.2018
12:45:48
Nameless
26.02.2018
12:46:18
да, круто, спасибо!
Ппц как круто ?

Anatoly
26.02.2018
12:46:51
Ппц как круто ?
ну, в смысле, нетривиально

Igor
26.02.2018
12:49:39
Кстати, если вставлять текст из клипборда прям в “””…”””, то IDEA сам правильно заэкранирует

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