Sobes.tech
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.