É apresentado o lançamento da linguagem de programação Go 1.22, que está sendo desenvolvida pelo Google com a participação da comunidade como uma solução híbrida que combina o alto desempenho das linguagens compiladas com vantagens das linguagens de script como facilidade de escrever código , velocidade de desenvolvimento e proteção contra erros. O código do projeto é distribuído sob a licença BSD.
A sintaxe do Go é baseada em elementos familiares da linguagem C com alguns empréstimos da linguagem Oberon. A linguagem é bastante concisa, mas o código é fácil de ler e entender. O código Go é compilado em arquivos executáveis binários separados que são executados nativamente, sem usar uma máquina virtual (criação de perfil, módulos de depuração e outros subsistemas de detecção de problemas em tempo de execução são integrados como componentes de tempo de execução), o que permite desempenho comparável a programas C.
O projeto é inicialmente desenvolvido visando a programação multithread e a operação eficiente em sistemas multi-core, incluindo o fornecimento de meios em nível de operador para organizar a computação paralela e a interação entre métodos executados em paralelo. A linguagem também fornece proteção integrada contra blocos de memória superalocados e oferece a capacidade de usar um coletor de lixo.
Entre as mudanças no novo lançamento:
- Foi adicionado suporte para definir intervalos de números inteiros aos loops "for". Por exemplo, para percorrer os valores de 0 a 9, agora você pode usar o loop "for i := range 10 {...}".
- Foi adicionado suporte experimental para funções de intervalo aos loops "for" (GOEXPERIMENT=rangefunc), permitindo que você especifique uma função como iterador. Por exemplo, "for i, x := range slices.Backward(s) {…}"
- Um problema antigo com loops `for` que fazia com que chamadas de goroutines compartilhassem variáveis de loop entre iterações foi resolvido. Por exemplo, o código `values := []string{"a", "b", "c"} for _, v := range values { go func() { fmt.Println(v) done`
Fonte: opennet.ru
