Sobes.tech
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 suspend funkcie 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 suspend funkcie 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")
}