Articles of infix notation

Проблема с kotlin для Android

У меня возникает интересная проблема. При отладке моего приложения isResColorId является false . К сожалению, let функция запускается, и я вижу qwe на logcat. fun drawableTint(context: Context, view: View, colorID: Int, isResColorId: Boolean = true) { try { val wrap = DrawableCompat.wrap(view.background) DrawableCompat.setTint(wrap, isResColorId then let { Timber.d("qwe"); ContextCompat.getColor(context, colorID) } ?: colorID) view.setBackgroundDrawable(wrap) }catch […]

Инфиксная нотация и с (…) не работают, как я ожидал

Рассмотрим следующий сценарий: у меня есть тест класса class Test() { infix fun say(msg: String) = println(msg) } и основной метод fun main(args: Array<String>) { val test = Test() test say "Hello World!" //Works with(test) { say "Goodbye World!" //Does not work say("Hello again!") //Works } } Как вы можете видеть, я тестирую нотацию infix. […]

Можем ли мы использовать общие методы infix в Котлин?

Компилятор принимает инфикс + общие методы, но каков синтаксис для его использования? Пример, учитывая те два идентичных метода (по модулю произвольного родового типа): infix inline fun Int1.plus1(i: Int1) = Int1(this.value + i.value) infix inline fun <U> Int1.plus2(i: Int1) = Int1(this.value + i.value) Я могу написать : Int1(3).plus1(Int1(4)) Int1(3) plus1 Int1(4) Int1(3).plus2<Int>(Int1(4)) но этот вызов недействителен: […]