Sobes.tech
Middle

Ce înseamnă cuvântul cheie 'suspend' în Kotlin?

sobes.tech AI

Răspuns de la AI

Cuvântul cheie suspend în Kotlin este utilizat pentru a marca o funcție sau o expresie lambda care poate fi suspendată și reluată mai târziu. Astfel de funcții sunt numite corutine.

Principalele proprietăți ale funcțiilor suspend:

  • Pot fi apelate doar dintr-o altă funcție suspend sau dintr-un scope de corutină.
  • Suspendarea unei funcții nu blochează thread-ul în care se execută. În schimb, thread-ul poate fi folosit pentru alte sarcini.
  • După executarea unei operații suspendate (de exemplu, o solicitare de rețea), funcția își reia activitatea de unde a fost suspendată.
  • În culise, compilatorul Kotlin transformă funcțiile suspend în mașini de stări, folosind stilul Continuation-Passing (CPS).

Exemplu:

// Exemplu de funcție suspend pentru a simula o operație lungă
suspend fun fetchData(): String {
    // Simulare de solicitare de rețea sau sarcină lungă
    kotlinx.coroutines.delay(1000) // Suspendare fără blocarea thread-ului
    return "Datele au fost primite"
}

// Funcție care apelează o funcție suspend
fun main() = kotlinx.coroutines.runBlocking { // runBlocking creează un scope de corutină
    println("Se încarcă datele...")
    val data = fetchData() // Apelare funcție suspend
    println("Date: $data")
}