Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как можно гарантировать закрытие файла без использования with?
Для гарантированного закрытия файла можно использовать конструкцию try и finally. В блоке finally будет выполнено закрытие файла, даже если в процессе работы с файлом возникнет ошибка.
В чем разница между try-with-resources и try-catch-finally при работе с ресурсами?
try-with-resources автоматически закрывает ресурсы, такие как потоки или файлы, после завершения блока. В try-catch-finally закрытие ресурсов нужно обрабатывать вручную в блоке finally, что увеличивает объем кода и может привести к ошибкам.
Какова цель функции withContext() в Kotlin корутинах?
Функция withContext() в Kotlin корутинах используется для смены контекста выполнения корутины на другой диспетчер. Она позволяет выполнить код в другом потоке (например, для операций с сетью или ввода/вывода) без блокировки текущего потока.
Когда использовать context.WithTimeout, а когда context.WithDeadline?
WithTimeout задаёт ограничение от текущего момента (через N секунд/миллисекунд). WithDeadline фиксирует конкретное время окончания. Для API-запросов чаще берут WithTimeout, для задач с фиксированным дедлайном — WithDeadline.
Как работает конструкция with в Python
Конструкция with используется для работы с контекстными менеджерами. Она автоматически вызывает __enter__ при входе в блок и __exit__ при выходе. Это происходит даже если внутри блока возникает ошибка. with помогает избежать утечек ресурсов. Чаще всего применяется при работе с файлами и соединениями.
Как работает async with
Чем hitTest(_:with:) отличается от point(inside:with:)?
Что произойдет, если exception возникнет в try и при закрытии ресурса в try-with-resources?
Как работает context.WithTimeout и что происходит после истечения таймаута?
Рейтинг:
5
Сложность:
6
async with — это асинхронная версия обычного with. При входе в блок вызывается await __aenter__(). Затем выполняется код внутри блока. После завершения блока вызывается await __aexit__(). Это происходит даже при возникновении исключения. Таким образом гарантируется корректное освобождение ресурсов.
Рейтинг:
5
Сложность:
8
point(inside:with:) отвечает только на вопрос, попадает ли точка внутрь view. hitTest(_:with:) определяет, какая именно view должна обработать событие. Первый метод — это фильтр, второй — механизм поиска. Их часто переопределяют вместе, но назначение у них принципиально разное.
Рейтинг:
5
Сложность:
7
Если исключение возникло в try, а затем еще одно при закрытии ресурса, основным считается исключение из try. Исключение при закрытии ресурса не теряется, а добавляется как suppressed exception. Его можно получить программно. Это позволяет сохранить полную информацию об ошибках. Такой механизм предотвращает потерю данных об исключениях.
Рейтинг:
5
Сложность:
5
context.WithTimeout создаёт контекст, который автоматически отменяется по истечении заданного времени. После таймаута закрывается ctx.Done(), а ctx.Err() возвращает context.DeadlineExceeded.
Рейтинг:
1
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
7
Рейтинг:
3
Сложность:
3
Рейтинг:
5
Сложность:
4