Middle
Cosa significa la parola chiave 'suspend' in Kotlin?
sobes.tech AI
Risposta dell'AI
La parola chiave suspend in Kotlin viene utilizzata per contrassegnare una funzione o un'espressione lambda che può essere sospesa e ripresa più tardi. Queste funzioni sono chiamate coroutine.
Proprietà principali delle funzioni suspend:
- Possono essere chiamate solo da un'altra funzione
suspendo da uno scope di coroutine. - La sospensione di una funzione non blocca il thread in cui viene eseguita. Invece, il thread può essere utilizzato per eseguire altri compiti.
- Dopo l'esecuzione di un'operazione sospesa (ad esempio, una richiesta di rete), la funzione riprende il suo lavoro dal punto in cui è stata sospesa.
- Dietro le quinte, il compilatore Kotlin trasforma le funzioni
suspendin macchine a stati, usando lo stile Continuation-Passing (CPS).
Esempio:
// Esempio di funzione suspend per simulare un'operazione lunga
suspend fun fetchData(): String {
// Simulazione di una richiesta di rete o di un compito lungo
kotlinx.coroutines.delay(1000) // Sospensione senza bloccare il thread
return "Dati ricevuti"
}
// Funzione che chiama una funzione suspend
fun main() = kotlinx.coroutines.runBlocking { // runBlocking crea uno scope di coroutine
println("Caricamento dati...")
val data = fetchData() // Chiamata a funzione suspend
println("Dati: $data")
}