Разбор причины ошибки компиляции в Kotlin‑классе
Ошибка — var в параметре вторичного конструктора. Свойства через val/var объявляются в первичном конструкторе; делегирование this(section) здесь корректно.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Ошибка — var в параметре вторичного конструктора. Свойства через val/var объявляются в первичном конструкторе; делегирование this(section) здесь корректно.
Читать ответВ исходном виде код не компилируется: async возвращает Deferred<Int>, а не Int; async и launch также требуют CoroutineScope. Поведение ошибок зависит от родительской области.
Читать ответРезультат не гарантированно равен 100000: counter++ не атомарен, и параллельные обновления теряются. Для точного счётчика нужна синхронизация.
Читать ответСравнивайте квадраты крайних элементов и записывайте больший с конца результирующего массива. Это даёт O(n) времени без дополнительной сортировки.
Читать ответОбработчик во вложенном launch не перехватит ошибку: дочерняя корутина передаст её родителю. Ошибка отменит обычный Job и будет обработана как неперехваченная.
Читать ответViewModel нужно получать через ViewModelStore, а не создавать обычным remember. Для Android-состояния обычно используют collectAsStateWithLifecycle.
Читать ответБудет напечатано 2 примерно через секунду: join ждёт завершения первой корутины, а await второй возвращает уже готовую строку.
Читать ответРазделите HTTP-слой, репозиторий, ViewModel и Compose-экран. Преобразуйте ответ в состояние интерфейса, а правило выбора цвета сделайте явным.
Читать ответВ Kotlin массив целых чисел создают через intArrayOf для готовых значений или через IntArray, если известны размер и правило заполнения.
Читать ответСначала получите список идентификаторов, затем последовательно загрузите документы через map. Оберните операцию в flow и выдайте готовый список одним emit.
Читать ответПервое обращение к неинициализированному lateinit завершится UninitializedPropertyAccessException. До безопасного вызова через second?.get() выполнение не дойдёт.
Читать ответЗапустите оба запроса отдельными задачами, дождитесь их завершения и объедините результаты. В Python 3.11+ для связанной группы задач подходит asyncio.TaskGroup.
Читать ответ