и посмотреть медиа
Kotlin | Interview Questions
и посмотреть медиа
Interview questions for Kotlin developers with answers.
Interview questions for Kotlin developers with answers.
AI bot for text-to-speech and voice cloning in Telegram. Create audio using neural network quickly and easily.
Kotlin interview questions: extensions, coroutines, collections. With code examples and explanations for Android and backend.
🤔 Можно ли создать анонимный класс внутри inline функции? Анонимный класс внутри inline-функции будет инстанцироваться при каждом вызове функции, что ломает цель inline — избавляться от накладных расходов на объекты. 🚩Что такое анонимный класс в Kotlin? Анонимный класс — это класс без имени, который можно создать с помощью object : Interface {}. interface ClickListener { fun onClick() } fun main() { val listener = object : ClickListener { override fun onClick() { println("Кнопка нажата!") } } listener.onClick() } 🚩Анонимный класс в `inline`-функции Если мы создадим анонимный класс внутри inline-функции, он будет создаваться каждый раз при вызове функции! inline fun setClickListener(action: () -> Unit) { val listener = object : ClickListener { override fun onClick() { action() } } listener.onClick() } fun main() { setClickListener { println("Нажато!") } } Ошибка компиляции Inline function cannot contain object expressions 🚩Как обойти ограничение? Если нужно использовать inline, можно передавать лямбду вместо анонимного класса. Рабочий вариант inline fun setClickListener(noinline action: () -> Unit): ClickListener { return object : ClickListener { override fun onClick() { action() } } } fun main() { val listener = setClickListener { println("Нажато!") } listener.onClick() } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!