@kotlin_lang

Страница 196 из 982
Ivan
18.06.2017
22:45:58
Ребят, я правильно понимаю что нет больше версий чтобы записать дефолтное значение для результата функции fun foo(i: Int): Int { return i * i } кроме как val a: Int? = null val foo = a?.let { foo(it) } ?: 23 //or val foo2 = if (a != null) foo(a) else 23

Михаил
18.06.2017
22:50:29
а val a:Int ?

не дает?

хотя да)

Google
Ivan
18.06.2017
22:55:13
ну само собой вопрос подразумевает что функцию нужно оставить в первозданном виде. Типа идея вызываем функцию в нескольких местах, но дефолтное значение для различных участков кода разные

Quantum Harmonizer
19.06.2017
08:13:57
Не смотрел?
У меня с этими аргументами таки меньшая APK получается.

Михаил
19.06.2017
09:11:58
Quantum Harmonizer
19.06.2017
09:15:45
А проверки вырезаются, не глядел?
гы, а проверки остались

Михаил
19.06.2017
09:18:53
;/

Quantum Harmonizer
19.06.2017
09:19:34
-assumenosideeffects class kotlin.jvm.internal.Intrinsics { static void checkParameterIsNotNull(java.lang.Object, java.lang.String); }

Quantum Harmonizer
19.06.2017
09:28:51
Михаил
19.06.2017
09:28:55
Пров?ило для прогарда

Понял

Ivan
19.06.2017
10:02:37
https://youtrack.jetbrains.com/issueMobile/KT-18483 Ну охуеть просто. Извините за мой французский

Google
Quantum Harmonizer
19.06.2017
10:04:56
Сильно выше.

Ivan
19.06.2017
10:06:00
Дык со мнойи обсуждали

Это я завёл таску

Обсуждали выше.
Посмотри ответ с которым закрыли ишью

Михаил
19.06.2017
10:08:17
:D

Umren
19.06.2017
10:08:21
Пришли патч с исправлением)

Quantum Harmonizer
19.06.2017
10:08:40
Посмотри ответ с которым закрыли ишью
А что на что идея предлагала заменить?

Михаил
19.06.2017
10:09:02
IntRange.contains cannot be called with a nullable parameter.

Иван просто магией вне Хогврадса пользуется

Ivan
19.06.2017
10:13:46
А что на что идея предлагала заменить?
Ну я сначала написал что-то вроде return start <= point && point <= end Мне идея подчёркивает и говорит: "так это же point in start..end "

Ivan
19.06.2017
10:16:09
Не, не работает

Quantum Harmonizer
19.06.2017
10:17:51
Не, не работает
Значит, в return start <= point && point <= end point не nullable?

Ivan
19.06.2017
10:18:51
Просто сначала был Int, потом поменял Int?, с идеей что если аргумент null, то это же автоматически false

Ну и котлин спокойно это проглотил

Значит, в return start <= point && point <= end point не nullable?
Но ты когда такое выражение пишешь для point: Int? идея подчёркивает что ошибка компиляции и подсказывает что можно заменить на in range

Ivan
19.06.2017
10:23:51
Ну я вообще не согласен, мне кажется что логичнее было бы этот момент поправить в языке, потому что это же бомба замедленного дейсвия

Google
? animufag ?
19.06.2017
11:35:22
то сё, наверное ещё не скидывали https://events.yandex.ru/events/yagosti/24-june-2017/

Daniil
19.06.2017
13:29:18
Ребята, нужна помощь. Пытаюсь заинжектить репозиторий в синглтон (object), выдает ошибку dagger does not support injection into static fields

Boris
19.06.2017
13:30:05
скорее всего дело в том, что даггер не поддерживает инжекшн в статические поля ?

Daniil
19.06.2017
13:31:09
Как это исправить? Это нормально вообще инжектить в синглтон?

Boris
19.06.2017
13:31:25
нет, совершенно не нормально

Daniil
19.06.2017
13:31:51
только в активити, фрагменты и сервисы?

Daniil
19.06.2017
13:58:53
я инжектю
Как ты это делаешь?)

Михаил
19.06.2017
13:59:28
Как ты это делаешь?)
а, нет, это все же обычный класс, извини за дезинформацию

Как ты это делаешь?)
у меня не object, а просто class, ибо в object нельзя сделать lateinit поля, при этом у меня class как синглтон работает

Daniil
19.06.2017
14:24:20
окей, спасибо

Sergey
19.06.2017
14:36:43
котлин в реактор затащили https://github.com/reactor/reactor-core/commit/5140235171ddd84a83c761a6868aa55fa2036fbd

Dmitry
19.06.2017
15:00:48
кто-нибудь в курсе, почему реактора нет на http://reactivex.io/?

Андрей
19.06.2017
15:08:43
кто-нибудь в курсе, почему реактора нет на http://reactivex.io/?
На http://reactivex.io представлены Netflix-овские библиотеки для реализации реактивного программирования, в то время как Реактор - это библиотека от Pivotal для того же.

Sergey
19.06.2017
19:27:18
Зачем это делать? Засунуть синглетон в даггер и там пропиши все зависимости

Как это исправить? Это нормально вообще инжектить в синглтон?

Anton
19.06.2017
19:48:12
пацаны а линт норм с котлином работает?

Михаил
19.06.2017
19:48:52
относительно да

Anton
19.06.2017
19:49:03
хехе относительно)

ладно попробую спасибо)

Google
Artem
19.06.2017
21:52:25
Ребят, а почему могут не работать декораторы для recyclerview? На чистой джаве пашет, на котлине — нет ?

Artem
19.06.2017
21:56:56
java: rvList.setHasFixedSize(true); rvList.setLayoutManager(new LinearLayoutManager(getActivity())); rvList.addItemDecoration(Utils.getListDivider(getActivity(), R.drawable.month_list_divider, 0, 0)); rvList.setItemAnimator(new DefaultItemAnimator()); private static class ListDivider extends RecyclerView.ItemDecoration { private Drawable mDivider; private int leftMargin; private int startElement; ListDivider(Context context, int resId, int leftMargin, int startElement) { mDivider = ContextCompat.getDrawable(context, resId); this.leftMargin = leftMargin; this.startElement = startElement; } @Override public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { // int left = 0; int right = parent.getWidth() - parent.getPaddingRight(); int childCount = parent.getChildCount(); for (int i = startElement; i < childCount; i++) { View child = parent.getChildAt(i); RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); int top = child.getBottom() + params.bottomMargin; int bottom = top + mDivider.getIntrinsicHeight(); mDivider.setBounds(leftMargin, top, right, bottom); mDivider.draw(c); } } }

Admin
ERROR: S client not available

Artem
19.06.2017
21:57:19
kotlin: rv.apply { setHasFixedSize(true) layoutManager = LinearLayoutManager(this@StatisticsActivity) addItemDecoration(Utils.getListDivider(this@StatisticsActivity, R.drawable.list_divider, 0, 0)) itemAnimator = DefaultItemAnimator() adapter = statAdapter } class ListDivider constructor(context: Context, resId: Int, private val leftMargin: Int, private val startElement: Int) : RecyclerView.ItemDecoration() { private val mDivider: Drawable = ContextCompat.getDrawable(context, resId) override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State?) { // int left = 0; val right = parent.width - parent.paddingRight val childCount = parent.childCount for (i in startElement..childCount - 1) { val child = parent.getChildAt(i) val params = child.layoutParams as RecyclerView.LayoutParams val top = child.bottom + params.bottomMargin val bottom = top + mDivider.intrinsicHeight mDivider.setBounds(leftMargin, top, right, bottom) mDivider.draw(c) } } }

Михаил
19.06.2017
22:03:33
А в каком плане не работают?

Разделитель не отрисовывается?

OnDraw вызывается вообще?

Artem
19.06.2017
22:07:52
да, вызывается

но разделитель не отрисовывается, да

Dmitry
19.06.2017
22:15:29
Перевод официальной документации на русский: http://kotlinlang.ru/

Nikita
20.06.2017
07:05:58
Друзья, расскажите, есть ли разница между @JvmField и const для объявления статических переменных?

Dmitriy
20.06.2017
07:11:04
https://play.google.com/store/apps/details?id=me.vickychijwani.kotlinkoans Изучение котлина в интересной форме ;)

Gregory
20.06.2017
07:22:42
кто-то имеет положительный опыт использования Kotlin и Vaadin?

Mikhail
20.06.2017
07:27:44
подскажите, пожалуйста, почему в такой интерфейс в generic нельзя передать Int в первый параметр Param, а Number можно? interface ObservableUseCase<in Param, T> { fun execute(vararg params : Param) : Observable<T> }

Gleb
20.06.2017
07:27:49
кто-то имеет положительный опыт использования Kotlin и Vaadin?
на уровне хелловорлдов - вполне положительный

Gregory
20.06.2017
07:28:18
спасибо, Глеб - надо попробовать )

Quantum Harmonizer
20.06.2017
07:48:28
Друзья, расскажите, есть ли разница между @JvmField и const для объявления статических переменных?
@JvmField освобождает поле от геттеров-сеттеров и делает видимым (для интеропа), const делает поле compile-time константой (только примитивы и строки).

Ivan
20.06.2017
08:27:48
В общем конст бестолковая вещь

Разве вал компилятор не сделает файнал?

Google
Nikita
20.06.2017
08:31:04
В общем конст бестолковая вещь
просто без этих манипуляций не удается привычно вызвать переменную в java коде. У меня преследуется эта цель, по крайней мере на текущий момент

Quantum Harmonizer
20.06.2017
08:33:03
В общем конст бестолковая вещь
нет, в Java compile-time константы неявные, здесь это делается явно

Разве вал компилятор не сделает файнал?
Сделает, но останется геттер и не будет инлайнинга значения.

Ivan
20.06.2017
08:36:52
Надеюсь геттеры Когда-нибудь выпилят

Quantum Harmonizer
20.06.2017
08:39:03
С чего бы?

Ivan
20.06.2017
08:40:10
Ну это все лишнее. Делают нулабилити и скрытые геттеры сеттеры, а потом половину языка придумывают костыли, чтобы в каких-то кейсах, от этих "фич" избавиться

Igor
20.06.2017
08:40:37
:facepalm:

Quantum Harmonizer
20.06.2017
08:41:28
Ivan
20.06.2017
08:41:45
А что делать?
что угодно, зачем геттеры генерить то без спроса?

Ivan
20.06.2017
08:42:10
надо будет, я сам напишу. Вместо этого за меня пилят геттеры и заставляют ставить аннотации и всякие консты, чтобы геттера не было.

я вот об жтом говорю

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