Ответ
State в suspend-функциях хранится в объекте Continuation, который создается при вызове корутины. Continuation содержит:
- Локальные переменные и параметры функции
- Точку приостановки (label)
- Результат предыдущих вычислений
Пример:
suspend fun fetchData(): String {
val result = apiCall() // приостановка
return process(result) // продолжение
}
При приостановке все состояние сохраняется в Continuation, а при возобновлении - восстанавливается. Continuation передается между suspend-функциями через цепочку вызовов.