Для прерывания используйте цикл for.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👀4🔥3👍2
Anonymous Quiz
15%
open
4%
abstract
74%
sealed
7%
final
💊3
Anonymous Quiz
84%
fun execute(code: () -> Unit) { code() }
2%
fun execute(code: Function) { code.apply() }
4%
fun execute(code: Runnable) { code.run() }
10%
fun execute(code: () -> Unit) { code.apply() }
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
Anonymous Quiz
43%
object : JavaInterface { override fun method() { println("Hello") } }
39%
class MyClass : JavaInterface { override fun method() = println("Hello") }
11%
val myObject = JavaInterface() { println("Hello") }
8%
new JavaInterface() { public void method() { System.out.println("Hello"); } }
💊16
Anonymous Quiz
36%
Использовать ключевое слово synchronized
24%
Использовать synchronized(this) { ... }
29%
Использовать @Synchronized fun method() { ... }
12%
Использовать блок @Synchronized для защиты кода
💊13
2. Автоматизировать задачи с помощью инструментов, например, Gradle или CI/CD.
3. Оптимизировать код и архитектуру на основе результатов анализа производительности.
4. Постепенно внедрять улучшения, отслеживая влияние на производительность.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
5%
Автоматическая обработка null Kotlin'ом
79%
Возможно возникновение NullPointerException
9%
Java-код не скомпилируется
7%
Kotlin гарантирует, что null не вернется
Anonymous Quiz
59%
Использовать синтаксис vararg
17%
Использовать массив arrayOf
16%
Использовать * для распаковки массива
8%
Никакие специальные действия не требуются
💊6🤔1
2. Он срабатывает до выполнения конструктора.
3. В init нельзя обращаться к поздноинициализированным (lateinit) свойствам, так как они могут ещё не быть доступны.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
Anonymous Quiz
82%
Использовать filterNotNull()
4%
Применить nullCheck()
2%
Использовать avoidNulls()
12%
Применить checkNull()
Anonymous Quiz
88%
Использовать withContext(Dispatchers.Main)
6%
Использовать onThread(Thread.Main)
5%
Применить runOn(Dispatchers.Main)
2%
Применить executeOn(Dispatcher.Main)
2. Только свойства, объявленные непосредственно в конструкторе data-класса, участвуют в этих методах.
3. Это ограничивает использование data-классов с наследованием, так как супер-класс теряет влияние на данные.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Anonymous Quiz
34%
fun takeClass(cls: Class)
18%
fun takeClass(cls: KClass)
16%
fun takeClass(cls: Class<Any>)
32%
fun takeClass(cls: KClass<*>)
Anonymous Quiz
3%
any as String
58%
any as? String
16%
any.toString()
22%
any as String?
💊2
2. Несмотря на то, что объект data-класса может быть изменён (mutable), его методы equals и hashCode основаны на значениях текущих свойств.
3. Это требует осторожности при использовании var в ключевых полях для обеспечения консистентности данных.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Anonymous Quiz
5%
var variable: String
72%
val variable: String
14%
const variable: String
9%
lateinit var variable: String
💊7
Anonymous Quiz
88%
is
9%
as
0%
in
3%
typeOf
1. SAM-конверсии позволяют использовать лямбда-функции вместо объектов классов с одним абстрактным методом.
2. Это делает код более кратким и читабельным при работе с Java API или интерфейсами в Kotlin.
3. Пример: интерфейс с одним методом автоматически превращается в функциональный тип.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Anonymous Quiz
70%
Использовать несколько интерфейсов с default методами
14%
Создать несколько абстрактных классов
2%
Использовать ключевое слово multiinherit
14%
Наследовать несколько классов