Size: a a a

Kotlin Community

2021 January 05

с#

саша сок #KotlinGang... in Kotlin Community
Boris Vanin
А вот скажите, у меня есть метод у класса и ещё экстеншен с тем же именем и оба принимают лямду. И вот я хочу уточнить тип лямбды, чтобы он вызвал нужную мне функцию
у меня fun View.setOnClickListener(handler: () -> Unit) = setOnClickListener { handler() } работало нормально
источник

с#

саша сок #KotlinGang... in Kotlin Community
Boris Vanin
Но оба котлин считает, что можно записать как {}
ну тогда

obj.method { arg: Type ->

}
источник

BV

Boris Vanin in Kotlin Community
саша сок #KotlinGang
ну тогда

obj.method { arg: Type ->

}
Нет, у него нету никакого параметра
источник

BV

Boris Vanin in Kotlin Community
У него рессивер
источник

с#

саша сок #KotlinGang... in Kotlin Community
Boris Vanin
Нет, у него нету никакого параметра
а.. тогда нормально никак, придумайте название другое. я думаю ничего лучше obj.method({ } as ...) не сделать
источник

BV

Boris Vanin in Kotlin Community
method({} as Type.()->Unit) не работает
источник

BV

Boris Vanin in Kotlin Community
Он всё равно пытается вызвать оригинальный метод
источник

BV

Boris Vanin in Kotlin Community
При этом это отлично работает, если я выношу функцию в переменную
источник

BV

Boris Vanin in Kotlin Community
Он сразу начинает всё правильно понимать
источник

BV

Boris Vanin in Kotlin Community
Те он чисто физически может правильно диспатчить это
источник

AL

Alexander Levin in Kotlin Community
Boris Vanin
А вот скажите, у меня есть метод у класса и ещё экстеншен с тем же именем и оба принимают лямду. И вот я хочу уточнить тип лямбды, чтобы он вызвал нужную мне функцию
Не знаю, какая ишью лучше всего подходит, но лайкать где-то в этом направлении: https://youtrack.jetbrains.com/issue/KT-36383
источник

AL

Alexander Levin in Kotlin Community
Но судя по всему там целый класс проблем с этим
источник

BV

Boris Vanin in Kotlin Community
Alexander Levin
Не знаю, какая ишью лучше всего подходит, но лайкать где-то в этом направлении: https://youtrack.jetbrains.com/issue/KT-36383
👍 но у них там as вроде как работает, а у меня нет
источник

AL

Alexander Levin in Kotlin Community
Ну может стоит подцепить ещё одну задачу к задаче Overload resolution, поскольку это идейно всё похоже, но везде чуток не совпадает
источник

VP

Vladimir Petrakovich in Kotlin Community
Boris Vanin
У него рессивер
Ну так то же самое решение работает
https://pl.kotl.in/_IVGJwI0k
источник

BV

Boris Vanin in Kotlin Community
Vladimir Petrakovich
Ну так то же самое решение работает
https://pl.kotl.in/_IVGJwI0k
О, с fun работает! Супер!
источник

BV

Boris Vanin in Kotlin Community
А вот без fun я работающего синтаксиса не нашёл
источник

BV

Boris Vanin in Kotlin Community
Но это уже значительно лучше чем переменную делать
источник

с#

саша сок #KotlinGang... in Kotlin Community
и значительно лучше другого названия?
источник

BV

Boris Vanin in Kotlin Community
саша сок #KotlinGang
и значительно лучше другого названия?
Другое название я не могу сделать
источник