Ответ
suspend функции в Kotlin — это функции, которые могут быть приостановлены и возобновлены без блокировки потока. Они используются в корутинах для асинхронных операций (например, сетевых запросов или работы с БД).
Ключевые особенности:
- Вызываются только из корутины или другой
suspendфункции. - Не блокируют поток во время ожидания (например,
delay()). - Компилятор преобразует их в конечный автомат с коллбэками.
Пример:
suspend fun fetchData(): String {
delay(1000) // Не блокирует поток!
return "Data loaded"
}
Использование:
viewModelScope.launch {
val data = fetchData() // Вызов suspend функции
textView.text = data
}
⚠️ Без корутины или suspend контекста такой код не скомпилируется.