
Sergey
29.08.2018
04:33:00
наоборот
companion object {}
object Creator {}

Igor
29.08.2018
04:44:02

Andrew
29.08.2018
06:32:38
Кому там литералов для массивов не хватает? :D
https://twitter.com/marcinmoskala/status/1007640373970329600

Alexander
29.08.2018
06:45:33
Интересное решение

Google

Alexander
29.08.2018
06:45:54
Для карт можно тоже самое сделать
Хотья я уже привык к listOf/arrayOf
Заморачиваться за форму скобочек - совершенно не прдуктивно

Andrew
29.08.2018
06:54:52
Да и очевидность этого L[...] другим разработчикам слегка сомнительно. Но решение занятное.

Alexander
29.08.2018
06:56:38
Я вообще заметил, что с котлиной можно делать некоторые совершенно неожиданные вещи. Чего только одно переопределение invoke на строках стоит.
Чего-то я не поял. Как явным образом использовать KClass в common модуле? Я могу его получить как ...::class , но почему-то не могу объявить переменную такого типа...

Andrew
29.08.2018
06:59:25
Ещё б неочевидный unary plus в DSL не нужен был — вообще было бы идеально :)

Alexander
29.08.2018
06:59:59
С типом Т
Почему-то uresolved reference

Andrew
29.08.2018
07:00:22
import kotlin.reflect.KClass?
У меня в common-модуле вполне хорошо себя чувствует
class Ref<T: Any>(var ref: T?, val type: KClass<out Any>)

Alexander
29.08.2018
07:01:16
Да, уже сделал. После того как руками импорт прописал, все увидело

Google

Alexander
29.08.2018
07:01:24
Видимо какой-то глюк идеи

Andrew
29.08.2018
07:02:31
Возможно, у меня тоже с импортами в common-модулях странности бывали.
Хотя я и native-часть в идее пишу, где вообще кроме базовой подсветки синтаксиса ничего не работает, и ничего, жить можно...

Костя
29.08.2018
07:31:37
Всем привет! Кто может подсказать в чем разница, если она есть между map и flatMap у kotlin.collections ? по описанию методов разницы никакой нет

Igor
29.08.2018
07:32:24
Да ладно, там даже сигнатуры разные.
flatMap это по сути map + flatten

Andrew
29.08.2018
07:34:42
Всем привет! Кто может подсказать в чем разница, если она есть между map и flatMap у kotlin.collections ? по описанию методов разницы никакой нет
listOf(1, 2, 3).map { it * 2 } -> [2, 4, 6]
listOf(1, 2, 3).flatMap { listOf(it, it * 2) } -> [1, 2, 3, 4, 5, 6]

Костя
29.08.2018
07:35:09
ну заметил разницу что при использовании map мы получим преобразованную коллекцию с таким же колличеством элементов, при flatMap может быть и другое

Andrew
29.08.2018
07:35:10
Т.е. .map о соответствии 1 к 1, .flatMap — 1 к 0..*

Костя
29.08.2018
07:38:49
listOf(1, 2, 3).map { it * 2 } -> [2, 4, 6]
listOf(1, 2, 3).flatMap { listOf(it, it * 2) } -> [1, 2, 3, 4, 5, 6]
понял, спасибо
только у тебя в примере ошибка в коллекции последней
[1, 2, 2, 4, 3, 6]
будет такая в итоге

Andrew
29.08.2018
07:39:41
Верно, туфту написал. Но суть, я надеюсь, ясна осталась.

Костя
29.08.2018
07:39:50
да, спасибо

Vadim
29.08.2018
08:01:30
читаю следующий код:
fun onViewClick(viewId: Int, viewTag: Int?) {
when (viewId) {
R.id.expandCollapseActionView -> onExpandClick()
R.id.reportButton -> contract.showContactSupport()
else -> viewTag?.let { onContactClick(contacts.getOrNull(it)) }
}
}
И не могу понять условие else то есть если пользователь нажмёт на любой какой то другой viewId вызовется метод onContactClick при условии если viewId типо существует? или как?

Maxim
29.08.2018
08:05:13

Vadim
29.08.2018
08:06:24

Костя
29.08.2018
08:07:22

Maxim
29.08.2018
08:07:23

Костя
29.08.2018
08:07:24
то да

Google

Костя
29.08.2018
08:07:27
вызовется клик

Vadim
29.08.2018
08:09:09

Maxim
29.08.2018
08:10:20

Vadim
29.08.2018
08:11:00

Konstantine
29.08.2018
08:12:01
Что тут не понятно?)

Andrew
29.08.2018
08:12:11
вы имеете в виду setOnClickListener? ну так вьюшкам внутри фрагмента
Вероятно, кто-то наивно посчитал, что в метод может прилететь ограниченное количество id-шников, потому вместо последнего R.id.contactButton -> написал else -> (ибо компилятор ругался, что очень нужен else). По-хорошему, конечно, это исправить бы на
when (viewId) {
R.id.expandCollapseActionView -> onExpandClick()
R.id.reportButton -> contract.showContactSupport()
R.id.contactButton -> viewTag?.let { onContactClick(contacts.getOrNull(it)) }
else -> Log.e("Unable to process $viewId")
}
(офк, это слепое предположение)

Konstantine
29.08.2018
08:12:40

Vadim
29.08.2018
08:13:46

Konstantine
29.08.2018
08:13:59

Andrew
29.08.2018
08:14:15
И то верно.

Konstantine
29.08.2018
08:14:17

Maxim
29.08.2018
08:15:46

Vadim
29.08.2018
08:16:21

Maxim
29.08.2018
08:20:26
и чем плохо вызов контракта то?)
для тестов - не могу тебе подсказать тебе, как лучше использовать. Для реальной жизни - тебе нужно либо повесить listener на вью, которые должны вызывать это действие, либо дергать другой метод контракта, но ни в коем случае не presenter.onViewClick(5, 7)

Konstantine
29.08.2018
08:34:03

Alexander
29.08.2018
09:19:51
В чем именно вопрос? Как это реализовать на конкретной платформе или как организовать структуру данных для обработки автозамены?

Google

Alexander
29.08.2018
09:21:28
Я не уверен, что это в этот чат, разве что у кого-то есть много времени писать код за кого-то. Тем более не сказано, что за платформа.

Admin
ERROR: S client not available

Alexander
29.08.2018
15:08:22
Вот читаю я интервью @relizarov , которое в Daily Kotlin всплыло. Заинтересовал момент про overhead на копирование стэка в корутинах. В какой момент этот overhead возникает. Положим, я делаю на корутине какую-то сильно тяжелую задачу, я его заплачу один раз или на каждый resume? И вообще какой масштаб?
Мы сейчас делаем симулежку для частиц и там есть несколько вариантов. Как основной рассматриваем корутины. Вопрос насколько мелко можно дробить задачи, чтобы не сильно много терять на переключени контекстов, и вообще можно ли это делать на корутинах?

Dmitry
29.08.2018
15:17:29
@noraltavir можно ссылочку на интервью? Что-то не вижу в твитере дейли котлин.

Alexander
29.08.2018
15:17:45
я про канал здесь в телеграме
ссылка вот: https://habr.com/company/jugru/blog/421607/

Bogdan
29.08.2018
15:22:17

Alexander
29.08.2018
15:27:17
Мы с аспираном делали какие-то синтетические тесты, там на микрозадачах была эффективность в районе 70-80% Чего-то найти не могу. Но не понятно, с чем это связано, с корутинами или с накладными расходами в друго месте
Не могу найти, кануло куда-то в недра слака

Bogdan
29.08.2018
15:34:32

Alexander
29.08.2018
15:36:07
Я тоже не думаю. В действительности, на сложно ветвящихся задачах корутины могут и прибыль давать если там диспансер умный

Igor
29.08.2018
15:46:35

Vladimir
29.08.2018
15:59:11

balolam
29.08.2018
15:59:12
Всем привет, ни у кого нет проблем при повышении версии Kotlin до версии 1.2.61 в Android проекте?

Quantum Harmonizer
29.08.2018
16:00:27

balolam
29.08.2018
16:01:55
Все ванги в отпуске.
Удачно... Но мне интересно да/нет, были ли проблемы со сброкой проекта? (java.lang.Exception: RemoteException occurred in server thread; nested exception is:)

Nastia
29.08.2018
16:09:36

Sergey
29.08.2018
16:18:26
Но проект полностью на Java ?

Google

balolam
29.08.2018
16:19:20

Alexander
29.08.2018
16:27:45
Дочитал. @relizarov большой уважамс. Очень приятно читать. И JetBrains тоже уважамс. Попросился бы к вам работать (ибо энтузиазм есть), да боюсь что отчественная физика не оценит.

Mikhail
29.08.2018
16:28:51

Alexander
29.08.2018
16:30:51
Для стажировок я старый. Аспиранта пошлю если что. Но вообще я сейчас на физтехе раскручиваю идею использования котлины как языка для научного программирования (вместо питона). В весеннем семестре спецкурс будет. Если JB захочет порекламировать - я счастлив буду.

Galia
29.08.2018
16:46:28
А в каком возрасте уже поздно на стажировки?

Bogdan
29.08.2018
16:46:58

Alexander
29.08.2018
16:48:15
Да. Мы в основном на котлине пишем что-то более сложное, где нужна нормальная производительность и типы, но пока я работал над этим "сложным", мне пришла в голову мысль, что практически все базовые вещи, что можно делать на питоне в смысле обработки и визуализации, можно также легко делать на котлине

Galia
29.08.2018
16:56:53

Alexander
29.08.2018
16:58:19
Я не знаю позицию JB, но вообще самое классное время на мой взгляд (как преподавателя и научного руководителя) - это последние курсы ВУЗа и первые годы аспирантуры (это если физика, если не физика и не надо бегать от армии, то не понятно зачем аспирантура).