A linguagem Go (golang) do Google atingiu a versão 1.22, trazendo mudanças para for
loops, incluindo uma resolução para um problema que apresentava o risco de compartilhamento acidental de variáveis de loop.
Lançado em 6 de fevereiro, o Go 1.22 pode ser baixado e instalado em go.dev. As notas de lançamento do Go 1.22 podem ser encontradas no site do projeto.
Com o Go 1.22, a equipe do Go resolveu o que foi chamado de for
loop “pegadinha”, levando ao compartilhamento acidental de variáveis de loop. No Go 1.22, cada iteração do loop cria novas variáveis para evitar erros de compartilhamento acidental. Numa segunda mudança, for
loops em Go agora podem abranger números inteiros.
Também no Go1.22, uma otimização de tempo de execução melhora o desempenho da CPU em 1% a 3%, ao mesmo tempo que reduz a sobrecarga de memória da maioria dos programas Go em cerca de 1%. A desvirtualização aprimorada em compilações de otimização guiada por perfil (PGO) também é apresentada, permitindo o envio estático de mais chamadas de método de interface. A maioria dos programas verá melhorias de 2% a 14% com o PGO habilitado. O PGO foi introduzido no Go 1.21, que chegou em agosto de 2022.
Go 1.22 também traz melhorias para a biblioteca padrão. A math/rand/v2
O pacote fornece uma API mais consistente e limpa e usa algoritmos de geração pseudo-aleatória mais rápidos e de maior qualidade. Além disso, os padrões de roteamento HTTP usados por net/http.ServeMux
agora aceita curingas e métodos.
Em outras partes do Go 1.22:
- Os comandos Go em áreas de trabalho agora podem usar um
vendor
diretório contendo dependências do espaço de trabalho. - O
trace
a interface web da ferramenta foi atualizada como parte do trabalho para suportar o novo rastreador, resolvendo vários problemas e melhorando a legibilidade de várias subpáginas. - O comportamento do
vet
A ferramenta foi alterada para corresponder à nova semântica das variáveis de loop no Go 1.22. Também,vet
agora relata uma chamada não adiada paratime.Since
- No macOS na arquitetura de 64 bits, o conjunto de ferramentas Go agora gera executáveis independentes de posição por padrão.
- Go 1.22 adiciona uma porta experimental para OpenBSD em PowerPC big endian de 64 bits.