Google ha rilasciato un'anteprima della nuova versione del linguaggio di programmazione Go. La versione 1.18 aggiunge funzionalità per la programmazione "generica" con i cosiddetti tipi "parametrizzati".
Nelle loro stesse parole, è il cambiamento più importante e più grande al linguaggio di programmazione dal rilascio della versione 1 di Go. L'idea alla base di generics è che ora consente funzionalità per rappresentare funzioni e strutture di dati modificando i tipi. Ciò esclude la "generalità" consentita dalla definizione di un tipo di interfaccia come un modo per atrarre i dati effettivi portati a una funzione.
Google indica che gli sviluppatori di Go dovrebbero rendersi conto che la funzionalità porterà senza dubbio a nuovi bug. Dovrebbero quindi avvicinarsi a questi "generici" con cautela.
Altre funzionalità in Go 1.18 Beta
Oltre alla funzionalità di cui sopra, la nuova anteprima ha anche il supporto integrato per la scrittura di test basati su fuzzing. Questi test possono trovare automaticamente input che causano l'arresto anomalo dei programmi o restituiscono risposte non valide. Go 1.18 Beta offre anche una nuova "modalità spazio di lavoro Vai". Ciò consente ai programmatori di lavorare con più moduli Go contemporaneamente. Questo è particolarmente utile per i grandi progetti, secondo Google.
Inoltre, la versione 1.18 Beta aggiunge funzionalità con un comando esteso go version -m. Questo comando ora memorizza i dettagli come flag del compilatore. Un programma può ora interrogare i propri dettagli di compilazione con il comando debug.ReadBuildInfo.
Inoltre, nell'anteprima è stata aggiunta una convenzione di chiamata basata sul registro, disponibile da Go 1.17. Laddove nella versione precedente questa funzionalità era adatta solo per velocizzare il codice Go su sistemi x86 e x64, ora è adatta anche per sistemi basati su ARM64 e PPC64. Questo dovrebbe fornire fino al 20 percento in più di velocità.