Как стать автором
Обновить

Комментарии 4

Отличный цикл статей!!! Низкий поклон автору1
Был бы крайне благодарен автору, если бы он написал что то подобное, но не про Kotlin, а про систему Android.

Огромное спасибо за статьи! Реально очень полезно. С нетерпением жду Часть 5

Хорошая подборка. Ждем следующую статью


Вот этот случай crossinlineне нашел где у вас описан. "из другого контекста выполнения"

Если мы переданную лямбду вызовем в корутине, а в ней return есть, то же ставить crossinlineнадо? Корутина же будет считаться "another execution context"?


Note that some inline functions may call the lambdas passed to them as parameters not directly from the function body, but from
another execution context, such as a local object or a nested function. In such cases, non-local control flow is also not allowed in the lambdas. To indicate that the lambda parameter of the inline function cannot use non-local returns, mark the lambda parameter with the crossinline modifier:


inline fun f(crossinline body: () -> Unit) {
val f = object: Runnable {
override fun run() = body()
}
// ...
}

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории