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 para time.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.