Middle
Čo znamená kľúčové slovo 'suspend' v Kotlin?
sobes.tech AI
Odpoveď od AI
Kľúčové slovo suspend v Kotlin sa používa na označenie funkcie alebo lambda výrazu, ktorý je potenciálne možné pozastaviť a neskôr pokračovať. Takéto funkcie sa nazývajú korutiny.
Hlavné vlastnosti funkcií suspend:
- Môžu byť volané len z inej
suspendfunkcie alebo z scope korutiny. - Pozastavenie funkcie neblokuje vlákno, v ktorom sa vykonáva. Namiesto toho môže byť vlákno využité na vykonávanie iných úloh.
- Po vykonaní pozastavenej operácie (napríklad sieťovej požiadavky) funkcia pokračuje tam, kde bola pozastavená.
- V pozadí, Kotlin prekladač transformuje
suspendfunkcie na stroje stavov, používajúc Continuation-Passing Style (CPS).
Príklad:
// Príklad suspend funkcie na simuláciu dlhšej operácie
suspend fun fetchData(): String {
// Simulácia sieťovej požiadavky alebo dlhého úlohy
kotlinx.coroutines.delay(1000) // Pozastavenie bez blokovania vlákna
return "Dáta prijaté"
}
// Funkcia, ktorá volá suspend funkciu
fun main() = kotlinx.coroutines.runBlocking { // runBlocking vytvára scope korutiny
println("Načítavanie dát...")
val data = fetchData() // Volanie suspend funkcie
println("Dáta: $data")
}