Site Local

Portal de notícias de tecnologia

Go 1.27 chega com métodos genéricos e encoding/json baseado na v2

Lançado em 19/8, o Go 1.27 permite métodos com parâmetros de tipo, reforça a biblioteca padrão e reduz o custo de alocações pequenas.

Go 1.27 chega com métodos genéricos e encoding/json baseado na v2

A equipe do Go liberou em 19 de agosto de 2026 a versão 1.27 da linguagem. O anúncio oficial e as notas de lançamento destacam três mudanças na especificação: métodos genéricos (uma declaração de método pode ter seus próprios parâmetros de tipo), chaves de literais de struct que podem ser qualquer seletor de campo válido, e inferência de tipos de funções genéricas em todos os contextos em que elas são atribuídas ou convertidas a um tipo de função compatível. A InfoWorld resume o lançamento e cita um post do blog do Go de 26 de agosto dedicado aos métodos genéricos. O ciclo de seis meses continua: a versão chega com poucas quebras e reforços no runtime e na biblioteca padrão.

Métodos genéricos

As notas descrevem a mudança como “amplamente antecipada”. Um exemplo citado é math/rand/v2, que agora declara o método genérico (*Rand) N. Há limites: interfaces não podem declarar parâmetros de tipo, e métodos genéricos não podem implementar métodos de interface. Na prática, a mudança permite colocar funções genéricas no namespace de um tipo concreto, em vez de só no pacote.

Biblioteca e desempenho

A biblioteca padrão ganha encoding/json/v2 e encoding/json/jsontext; o pacote encoding/json existente passa a ser respaldado pela implementação v2, com unmarshaling mais rápido e compatibilidade mantida. Também entram crypto/mldsa (assinaturas pós-quânticas ML-DSA / FIPS 204) em x509 e TLS, um pacote uuid, suporte experimental a SIMD e httptest.NewTestServer para testes com rede em memória. No runtime, a alocação especializada de objetos pequenos (<80 B) reduz o custo em até 30% e melhora em cerca de 1% programas intensivos em alocação, ao preço de binários cerca de 60 KB maiores; o perfil goroutineleak passa a ser estável. Quem precisar desligar a otimização pode usar GOEXPERIMENT=nosizespecializedmalloc (previsto para sair no 1.28).

  • Ferramentas: go fix recebe novos modernizadores; go doc aceita pkg@version; go mod tidy consolida blocos require duplicados em módulos go 1.27+.
  • A promessa de compatibilidade do Go 1 é mantida.
  • Para migrar: atualizar a toolchain, rodar os testes com a suíte completa e ficar atento a mudanças de comportamento em JSON se o código dependia de detalhes da implementação antiga do unmarshaling.

O Go 1.27 é um lançamento típico da série: poucas quebras, uma mudança de linguagem pedida há anos e reforços em criptografia e desempenho. A pauta havia sido descartada no lote A por impacto relativo menor; aqui ela volta com texto completo e fontes conferidas.

Fontes

Imagem destacada: ilustração gerada por computador, sem valor documental.

Deixe comentário

Seu endereço de e-mail não será publicado. Os campos necessários são marcados com *.

Fique por dentro

As principais notícias de tecnologia, todos os dias

Siga o portal nas redes sociais e acompanhe IA, cibersegurança, cloud, hardware e o mercado de tecnologia em primeira mão.