Sobes.tech
Junior — Middle

Como é que se pode alterar o valor de um campo dentro de uma função suspend em Kotlin?

sobes.tech IA

Resposta da IA

Em Kotlin, dentro de uma função suspend, também é possível modificar os valores dos campos da mesma forma que em funções normais, desde que o campo seja acessível para escrita (var ou mutable). O principal é lembrar que uma função suspend pode ser pausada e retomada, portanto, ao trabalhar com estados mutáveis compartilhados, deve-se considerar a concorrência e a sincronização.

Exemplo de modificação de um campo dentro de uma função suspend:

class Exemplo {
    var contador = 0

    suspend fun incrementar() {
        // Pode modificar o campo com segurança
        contador += 1
    }
}

Se o campo pertence a um objeto acessível de várias corrotinas, recomenda-se usar mecanismos de sincronização, como Mutex do kotlinx.coroutines, para evitar condições de corrida.