Google lança Go 1.18 Beta com código genérico

Google has released a preview of the new version of programming language Go. Versão 1.18 adds functionality for ‘genericprogramming with so-called ‘parameterizedtypes.

In their own words, é a maior e mais importante mudança na linguagem de programação desde o lançamento da versão Go 1. A ideia por trás dos genéricos é que agora permite funcionalidade para representar funções e estruturas de dados, modificando os tipos. Isso exclui a "generalidade’ permitido pela definição de um tipo de interface como uma forma de abstrair os dados reais que estão sendo trazidos para uma função.

O Google indica que os desenvolvedores Go devem perceber que a funcionalidade sem dúvida levará a novos bugs. Eles devem, portanto, abordar esses "genéricos’ com cuidado.

Outras funcionalidades do Go 1.18 Beta

Além da funcionalidade acima, a nova visualização também tem suporte integrado para escrever testes baseados em fuzzing. Esses testes podem encontrar automaticamente entradas que fazem os programas travarem ou retornam respostas inválidas. Vai 1.18 Beta também oferece um novo ‘modo de espaço de trabalho Go’. Isso permite que os programadores trabalhem com vários módulos Go simultaneamente. Isso é especialmente útil para grandes projetos, de acordo com o Google.

além disso, versão 1.18 Beta adiciona funcionalidade com um comando estendido go version -m. Este comando agora armazena detalhes como sinalizadores de compilador. Um programa agora pode consultar seus próprios detalhes de construção com o comando debug.ReadBuildInfo.

Além disso, mais convenção de chamada baseada em registro, disponível desde Go 1.17, foi adicionado na pré-visualização. Na versão anterior, essa funcionalidade era adequada apenas para acelerar o código Go em sistemas x86 e x64, agora também é adequado para sistemas baseados em ARM64 e PPC64. Isso deve fornecer até 20 por cento mais velocidade.