Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
val Data.bindMethod_cell_2: View.() -> Unit
get() = {
//cell2_icon принадлежит View, icon принадлежит Data, а функция обращается к обоим свойствам без префиксов view. и data.
cell2_icon.setImageResource(icon)
cell2_text.setText(titleId)
}fun Data.bindMethod_cell_2(view: View) {
view.cell2_icon.setImageResource(icon)
view.cell2_text.setText(titleId)
}По моему, вы перемудрили. Все в кучу. Там вроде и так все просто. А у вас как-то все сложно, при этом даже без дженериков. Еще с возвратом экстеншн лямды.
Вы в следующий раз спросите себя перед тем как писать код: "а нужно ли мне это?", я вот так с корутинами вляпался.
fun Data.bindCell1(view: View) = view.apply{
cell1_icon.setImageResource(icon)
cell2_text.setText(titleId)
}@kotlin.internal.InlineOnly
public inline fun <T> T.apply(block: T.() -> Unit): T {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
block()
return this
}
Выразительный Kotlin. Extensions