Какие конструкции для создания корутин ты знаешь вне основных функций?

В Kotlin для Android корутины можно создавать не только в основных функциях, но и с помощью различных конструкций:

Короткий ответ

Что ответить на собеседовании

В Kotlin для Android корутины можно создавать не только в основных функциях, но и с помощью различных конструкций:

Подробный разбор

Ответ с пояснениями

В Kotlin для Android корутины можно создавать не только в основных функциях, но и с помощью различных конструкций:

  • launch — запускает новую корутину без возвращаемого результата, обычно в контексте CoroutineScope.
  • async — запускает корутину, которая возвращает результат через Deferred.
  • runBlocking — блокирует текущий поток, ожидая завершения корутины (чаще используется в тестах или main).
  • withContext — переключает контекст выполнения внутри корутины, например, на Dispatchers.IO.

Пример создания корутины вне основной функции:

fun fetchData(scope: CoroutineScope) {
    scope.launch {
        val data = async { loadDataFromNetwork() }.await()
        println(data)
    }
}

suspend fun loadDataFromNetwork(): String {
    // имитация сетевого запроса
    delay(1000)
    return "Data"
}

Таким образом, корутины можно создавать через launch, async, использовать withContext для переключения контекста, а также комбинировать эти конструкции для эффективного асинхронного кода.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку