Sobes.tech
Middle

Que signifie le mot-clé 'suspend' en Kotlin?

sobes.tech IA

Réponse de l'IA

Le mot-clé suspend en Kotlin est utilisé pour marquer une fonction ou une expression lambda qui peut être suspendue et reprise plus tard. Ces fonctions sont appelées coroutines.

Principales propriétés des fonctions suspend :

  • Elles ne peuvent être appelées que depuis une autre fonction suspend ou depuis un scope de coroutine.
  • La suspension d'une fonction ne bloque pas le thread dans lequel elle s'exécute. Au lieu de cela, le thread peut être utilisé pour effectuer d'autres tâches.
  • Après l'exécution d'une opération suspendue (par exemple, une requête réseau), la fonction reprend son travail là où elle a été suspendue.
  • En coulisses, le compilateur Kotlin transforme les fonctions suspend en machines à états, utilisant le style Continuation-Passing (CPS).

Exemple :

// Exemple de fonction suspend pour simuler une opération longue
suspend fun fetchData(): String {
    // Simulation d'une requête réseau ou d'une tâche longue
    kotlinx.coroutines.delay(1000) // Suspension sans bloquer le thread
    return "Données reçues"
}

// Fonction qui appelle une fonction suspend
fun main() = kotlinx.coroutines.runBlocking { // runBlocking crée un scope de coroutine
    println("Chargement des données...")
    val data = fetchData() // Appel de la fonction suspend
    println("Données : $data")
}