Google har udgivet en forhåndsvisning af den nye version af programmeringssproget Go. Version 1.18 tilføjer funktionalitet til 'generisk' programmering med såkaldte 'parameteriserede' typer.
Med deres egne ord er det den vigtigste og største ændring af programmeringssproget siden udgivelsen af Go version 1. Idéen bag generics er, at den nu tillader funktionalitet til at repræsentere funktioner og datastrukturer ved at modificere typerne. Dette udelukker den "generalitet", der er tilladt ved at definere en grænsefladetype som en måde at abstrahere de faktiske data, der bringes til en funktion.
Google indikerer, at Go-udviklere bør indse, at funktionaliteten uden tvivl vil føre til nye fejl. De bør derfor nærme sig disse 'generika' med forsigtighed.
Anden funktionalitet i Go 1.18 Beta
Udover ovenstående funktionalitet har den nye preview også indbygget understøttelse til at skrive fuzzing-baserede tests. Disse tests kan automatisk finde input, der får programmer til at gå ned eller returnere ugyldige svar. Go 1.18 Beta tilbyder også en ny 'Go workspace mode'. Dette giver programmører mulighed for at arbejde med flere Go-moduler samtidigt. Dette er især nyttigt til store projekter, ifølge Google.
Desuden tilføjer version 1.18 Beta funktionalitet med en udvidet go version -m kommando. Denne kommando gemmer nu detaljer som compilerflag. Et program kan nu forespørge på sine egne builddetaljer med kommandoen debug.ReadBuildInfo.
Også mere registerbaseret opkaldskonvention, tilgængelig siden Go 1.17, er blevet tilføjet i forhåndsvisningen. Hvor denne funktionalitet i den tidligere version kun var egnet til at fremskynde Go-koden på x86- og x64-systemer, er den nu også velegnet til ARM64- og PPC64-baserede systemer. Dette skulle give op til 20 procent mere hastighed.