Sobes.tech
Middle

¿Qué significa la palabra clave 'suspend' en Kotlin?

sobes.tech AI

Respuesta de la IA

La palabra clave suspend en Kotlin se utiliza para marcar una función o expresión lambda que puede ser suspendida y reanudada más tarde. Estas funciones se llaman corutinas.

Propiedades principales de las funciones suspend:

  • Solo pueden ser llamadas desde otra función suspend o desde un ámbito de corutina.
  • La suspensión de una función no bloquea el hilo en el que se ejecuta. En su lugar, el hilo puede ser utilizado para realizar otras tareas.
  • Después de completar una operación suspendida (por ejemplo, una solicitud de red), la función reanuda su trabajo desde donde fue suspendida.
  • Detrás de escena, el compilador de Kotlin transforma las funciones suspend en máquinas de estados, usando Continuation-Passing Style (CPS).

Ejemplo:

// Ejemplo de función suspend para simular una operación prolongada
suspend fun fetchData(): String {
    // Simulación de una solicitud de red o tarea prolongada
    kotlinx.coroutines.delay(1000) // Suspensión sin bloquear el hilo
    return "Datos recibidos"
}

// Función que llama a una función suspend
fun main() = kotlinx.coroutines.runBlocking { // runBlocking crea un ámbito de corutina
    println("Cargando datos...")
    val data = fetchData() // Llamada a función suspend
    println("Datos: $data")
}