Articles of лямбда

Функция расширения kotlin не понимает, как эта вещь работает

Я очень новичок в обучении Котлина. До сих пор все было вполне понятно: «Сегодня я натолкнулся на кусок кода, который запугивал меня. Я много искал и провел некоторое исследование этого фрагмента кода. вот эта две функции расширения, которые мне нужно понять private fun T ?.useOrDefault(default: R, usage: T.(R) -> R) = this?.usage(default) ?:default второй inline […]

Параметры абстрактного класса и лямбда

Поскольку kotlin имеет такую ​​хорошую поддержку лямбда, я начал использовать lambdas в качестве параметров конструктора для abstract классов вместо объявления abstract val/fun . По-моему, это более краткий, особенно потому, что тип val get get. Каковы недостатки этого? abstract class AbstractListScreen<T> ( val data: Set<T>, val filterators: (T) -> Set<String> ) { fun open() { /* […]

Kotlin lambdas без использования объектов

Я пытаюсь преобразовать из java в kotlin. Текущий java-интерфейс выглядит примерно так: interface MyInterface { void foo(int x, int y); } MyInterface testing = (int a, int b) -> System.out.print("TESTING"); Мое настоящее преобразование котлина: interface MyInterface { fun foo(x:Int, y:Int) } val kotlinConversion = object: MyInterface { override fun foo(x: Int, y: Int) { println("TESTING") […]

Kotlin и Jack не поддерживаются (Android Studio 2.3.2)

Я получаю эту ошибку при настройке плагина kotlin с Jack. В настоящее время я использую Android studio 2.3.2. Ошибка: плагин Kotlin Gradle не поддерживает устаревшую инструментальную цепочку Jack. Отключите Jack или вернитесь к плагину Kotlin Gradle версии 1.1.1.

Как проверить лямбда-пустоту в котлине

Как проверить, нет ли лямбда в Котлине? Например, у меня есть подпись вроде onError:(Throwable) -> Unit = {} Как я могу различить это значение по умолчанию приходит к телу или значению, примененному к этой функции?

Котлин: когда и как следует использовать выражения лямбда

В последнее время я переезжаю в Kotlin для своих Android-проектов и испытываю проблемы с Lambdas. Когда мы конвертируем файл Java в файл Kotlin, мы видим много лямбда-выражений. Когда и как следует использовать функцию лямбда? Кроме того, в чем разница между функцией более высокого порядка и лямбда-функцией / выражением? Ответы, специально предназначенные для Android, будут полезны.

Интеллектуальная переменная литья в обходном пути lambda kotlin

Сегодня у меня есть лямбда, у которой есть переменная, которая имеет неизвестный тип, и внутри условия when.is, переменная не может быть умной, отличной от типа в условии … она дает, что это невозможно, поскольку переменная является Public Api, есть ли обходной путь?

Kotlin Multiple Layer it Reference

Как вы ссылаетесь на второй слой «он» из третьего слоя, не создавая новый val / var? Я знаю, что вы можете сделать val mydata = it, а затем mydata.id.toString () Мне просто интересно, есть ли что-то в Котлине, которое может позволить мне ссылаться на него с более высокого уровня? data.arrayresults.forEach { val result = it […]

Kotlin Любые с lambdas

Хотя код, содержащий вопрос, довольно тривиален, вопрос фокусируется на более общем аспекте безопасности типов: Давайте будем иметь такую ​​лямбда-функцию: {it: (Any) -> Any -> it(it)} Он принимает другую лямбду и выполняет ее сам по себе как параметр. Итак, давайте сделаем очевидное и назовем его как параметр: {it: (Any) -> Any -> it(it)}.apply { this.invoke(this) } […]

Могу ли я преобразовать строку в выражение шаблона или выражение лямбда в kotlin?

Могу ли я преобразовать строку в выражение шаблона или выражение лямбда в kotlin? val tm = "x = $"+"x" val fn: (x: String) -> String = { it -> tm} val str = fn("This is X!!!") Нужно получить x = Это Х !!! Почему ?: Вы можете получать шаблоны, например, из базы данных PS: или […]