Обложка канала

StartAndroid

Материалы по Android разработке. Проект startandroid.ru

StartAndroid

4 года назад
Открыть в
Вышел Kotlin 1.6.20. Одна из интересных новых фич - context receivers. На словах объяснить непросто, но можно рассмотреть простой пример: внутри нашего кастомного View класса нам понадобилась функция конвертирования dp в px. На скриншоте выше - два варианта реализации. Первый вариант - обычная Extension функция для Float. Внутри класса View мы сможем ее вызвать и передать ей this, чтобы она получила доступ к resources и все посчитала. Второй вариант - использует context receivers. Оператором context мы даем этой Extension функции понять, что она будет вызвана внутри контекста View класса. Как попасть в контекст View класса? В нашем случае мы просто будем вызывать эту функцию внутри нашего View класса. Она сама вытянет из него resources. Нам уже не надо будет явно передавать view в функцию, как мы это делали в первом варианте. Еще один способ попасть в контекст View класса - with(view) { ... }. В блоке кода оператора with мы сможем вызывать нашу функцию dpToPx() и она сама доберется до view, который мы передали в with(). Если же попытаться вызвать такую функцию вне контекста View, то студия выдаст ошибку: No required context receiver found. #kotlin #extension #receiver blog.jetbrains.com/kotlin/…released
Kotlin 1.6.20 Released | The Kotlin Blog

Kotlin 1.6.20 offers previews of future language features and brings performance improvements for the JVM, JS, and Native platforms.

The JetBrains Blog