Sobes.tech
Middle

Šta znači ključna reč 'suspend' u Kotlinu?

sobes.tech АИ

Одговор од АИ

Ključna riječ suspend u Kotlinu se koristi za označavanje funkcije ili lambda izraza koji potencijalno može biti zaustavljen i kasnije nastavljen. Takve funkcije se nazivaju korutine.

Glavne osobine suspend funkcija:

  • Mogu se samo pozivati iz druge suspend funkcije ili iz scope-a korutine.
  • Zaustavljanje funkcije ne blokira nit u kojoj se izvršava. Umjesto toga, nit može biti iskorišćena za izvršavanje drugih zadataka.
  • Nakon izvršenja zaustavljene operacije (npr. mrežnog zahteva), funkcija nastavlja rad od mesta gde je zaustavljena.
  • U pozadini, Kotlin kompajler transformiše suspend funkcije u mašine stanja koristeći Continuation-Passing Style (CPS).

Primer:

// Primer suspend funkcije za simulaciju duže operacije
suspend fun fetchData(): String {
    // Simulacija mrežnog zahteva ili dužeg zadatka
    kotlinx.coroutines.delay(1000) // Zaustavljanje bez blokiranja niti
    return "Podaci primljeni"
}

// Funkcija koja poziva suspend funkciju
fun main() = kotlinx.coroutines.runBlocking { // runBlocking kreira scope korutine
    println("Učitavanje podataka...")
    val data = fetchData() // Poziv suspend funkcije
    println("Podaci: $data")
}