Sobes.tech
Middle

O que significa a palavra-chave 'suspend' em Kotlin?

sobes.tech IA

Resposta da IA

A palavra-chave suspend em Kotlin é usada para marcar uma função ou expressão lambda que pode ser suspensa e retomada mais tarde. Essas funções são chamadas de corrotinas.

Propriedades principais das funções suspend:

  • Podem ser chamadas apenas de outra função suspend ou de um escopo de corrotina.
  • A suspensão de uma função não bloqueia a thread na qual ela é executada. Em vez disso, a thread pode ser usada para realizar outras tarefas.
  • Após a execução de uma operação suspensa (por exemplo, uma requisição de rede), a função retoma seu trabalho de onde foi suspensa.
  • Nos bastidores, o compilador Kotlin transforma as funções suspend em máquinas de estados, usando o Estilo Passagem de Continuação (CPS).

Exemplo:

// Exemplo de função suspend para simular uma operação longa
suspend fun fetchData(): String {
    // Simulação de uma requisição de rede ou tarefa longa
    kotlinx.coroutines.delay(1000) // Suspensão sem bloquear a thread
    return "Dados recebidos"
}

// Função que chama uma função suspend
fun main() = kotlinx.coroutines.runBlocking { // runBlocking cria um escopo de corrotina
    println("Carregando dados...")
    val data = fetchData() // Chamada de função suspend
    println("Dados: $data")
}