Sobes.tech
Junior — Middle

Quais funções e capacidades adicionais foram incorporadas nos métodos de contexto com o surgimento do Go 1.21?

sobes.tech IA

Resposta da IA

No Go 1.21, foram adicionadas melhorias ao pacote context que expandem as capacidades de gestão de contexto:

  • O suporte a cancelamento com timeout e deadline tornou-se mais flexível.
  • Foram adicionadas novas funções para combinar vários contextos de forma conveniente.
  • Melhorou-se o desempenho e reduziu-se o consumo de memória ao trabalhar com contextos.

Por exemplo, agora é possível criar contextos que se cancelam automaticamente ao cumprir várias condições, o que simplifica a gestão do ciclo de vida das operações:

ctx1, cancel1 := context.WithCancel(context.Background())
ctx2, cancel2 := context.WithTimeout(context.Background(), time.Second*10)

ctx := context.Merge(ctx1, ctx2) // função hipotética para unir

// Usar ctx em requisições ou goroutines

// Cancelar ambos os contextos
cancel1()
cancel2()

(Observe que a sintaxe exata e as funções podem variar, pois as novas funcionalidades dependem da implementação específica no Go 1.21.)