Junior — Middle
Qual é o papel e a finalidade do contexto na linguagem de programação Go?
sobes.tech IA
Resposta da IA
Na linguagem Go, o contexto (context.Context) é usado para gerir o tempo de vida das operações, transmitir sinais de cancelamento e passar valores entre goroutines e funções.
Principais tarefas do contexto:
- Cancelar operações: permite cancelar operações longas ou bloqueantes, por exemplo, em caso de timeout ou cancelamento de requisição.
- Transmitir prazos: pode definir um tempo após o qual a operação deve ser automaticamente interrompida.
- Transmitir valores: permite passar dados relacionados à requisição ou operação, como identificadores de usuários, tokens, etc.
Exemplo de uso:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// Passar ctx para uma função que realiza uma operação longa
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
fmt.Println("Operação interrompida por timeout")
}
O contexto ajuda a escrever um código mais gerenciável e responsivo, especialmente em aplicações de rede e concorrentes.