
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
ну само собой вопрос подразумевает что функцию нужно оставить в первозданном виде. Типа идея вызываем функцию в нескольких местах, но дефолтное значение для различных участков кода разные

Pavel Shackih
19.06.2017
03:56:58

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);
}

Михаил
19.06.2017
09:28:29

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
Ну охуеть просто. Извините за мой французский

Quantum Harmonizer
19.06.2017
10:04:52

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

Quantum Harmonizer
19.06.2017
10:14:13

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
Ну и котлин спокойно это проглотил

Quantum Harmonizer
19.06.2017
10:21:18

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

Quantum Harmonizer
19.06.2017
10:25:00

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
только в активити, фрагменты и сервисы?

Михаил
19.06.2017
13:57:42

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

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? На чистой джаве пашет, на котлине — нет ?

Михаил
19.06.2017
21:54:35


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

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

Quantum Harmonizer
20.06.2017
07:48:28

Ivan
20.06.2017
08:27:48
В общем конст бестолковая вещь
Разве вал компилятор не сделает файнал?

Google

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

Quantum Harmonizer
20.06.2017
08:33:03

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:05

Ivan
20.06.2017
08:41:16

Quantum Harmonizer
20.06.2017
08:41:28

Ivan
20.06.2017
08:41:45

Alexander
20.06.2017
08:42:02

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