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
suspendo 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
suspenden 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")
}