Middle
Wat betekent het sleutelwoord 'suspend' in Kotlin?
sobes.tech AI
Antwoord van AI
Het sleutelwoord suspend in Kotlin wordt gebruikt om een functie of lambda-uitdrukking te markeren die potentieel kan worden opgeschort en later kan worden hervat. Deze functies worden coroutine genoemd.
Belangrijkste eigenschappen van suspend functies:
- Ze kunnen alleen worden aangeroepen vanuit een andere
suspendfunctie of vanuit een coroutine scope. - Het opschorten van een functie blokkeert de thread niet waarop deze wordt uitgevoerd. In plaats daarvan kan de thread worden gebruikt voor andere taken.
- Na het uitvoeren van een onderbroken operatie (bijvoorbeeld een netwerkverzoek), hervat de functie haar werk vanaf waar deze was opgeschort.
- Achter de schermen transformeert de Kotlin-compiler
suspendfuncties in toestandsmachines, gebruikmakend van Continuation-Passing Style (CPS).
Voorbeeld:
// Voorbeeld van een suspend functie om een langdurige operatie te simuleren
suspend fun fetchData(): String {
// Simulatie van een netwerkverzoek of lange taak
kotlinx.coroutines.delay(1000) // Opschorting zonder thread te blokkeren
return "Data ontvangen"
}
// Functie die een suspend functie aanroept
fun main() = kotlinx.coroutines.runBlocking { // runBlocking creëert een coroutine scope
println("Gegevens laden...")
val data = fetchData() // Aanroep van suspend functie
println("Gegevens: $data")
}