Programmeringssproget Go har udviklet sig meget, siden det først blev udgivet i 2009. Go 1.18 var en meget ventet udgivelse på grund af dens understøttelse af generika og mange andre vigtige opdateringer.
Go udgav version 1.18 i marts 2022. Her er oversigten over de vigtigste ændringer.
Support til generiske lægemidler
Generisk programmering lader dig skrive funktioner, der kan acceptere og returnere mere fleksible typer.
Før understøttelse af generiske artikler skulle du udtrykkeligt angive parametertyper og returtyper. Den enkleste form for generiske stoffer giver dig mulighed for at angive utypede parametre:
funcUdskriv hvad som helst[T enhver](tingT) {
fmt.Println(ting)
}
Men generiske lægemidler tilbyder meget mere kraft end blot dette. Du kan erklære næsten enhver kombination og granularitet af typen for parametre. Du kan f.eks. bruge begrænsninger pakke til at skrive en funktion, der fungerer på enhver værdi, som du kan bestille. Dette inkluderer int, floats og strenge. Her er et eksempel, der demonstrerer syntaksen:
importere "golang.org/x/exp/constraints"
funcMaks[T begrænsninger. Bestilt](input[]T) (maxT) {
for _, v := interval input {
hvis v > max {
max = v
}
}
Vend tilbage max
}
Bemærk, at denne funktion bruger den generiske type, begrænsninger. Bestilt, for at erklære dens parameter og dens returtype.
Generiske koder sørger for usikkerhed og fleksibilitet i kode. Generics-forslaget og ændringerne er bagudkompatible.
Fuzz test
Fuzzing er en software test teknik der validerer et program med fejlagtige, uventede eller uforudsigelige data.
Det testning pakken introducerer fuzzing i 1.18, så for at definere en fuzz, skal du importere den fra standardbiblioteket:
importere "testning"
Efter import af testning pakke, kan du sende en identifikator af typen *testning. F til testfunktionen.
functestFunc(f *testning. F) {
// din kode
}
Fuzzing genererer inputparametre til testkode. Resultatet af fuzzing er uforudsigeligt, da inputs ikke er brugerdefinerede. Fuzzing skulle hjælpe dig med at skrive bedre kodetests og fange fejl, du ikke vidste eksisterede.
Go Workspace Support
Arbejdsrum er mapper med lignende kildekode, der udgør et projekt eller en større enhed. Arbejdsområder gør det nemmere at administrere og fejlsøge kode ved at gruppere lignende kode baseret på funktionalitet.
Konventionelt underinddeler du Go-projekter i kildekode (src) og eksekverbare filer (beholder). Go-værktøjskæden bygger kildekode fra førstnævnte til eksekverbare i sidstnævnte. Go-arbejdsområder giver udviklere mulighed for at arbejde med flere arbejdsområder ved hjælp af Go-moduler med et bestemt hovedmodul.
Kommandoen til at oprette arbejdsområder er:
$ gå på arbejde <kommando>
Brug arbejde kommando med underkommandoer som:
- i det → opretter et arbejdsområde i den angivne mappe.
- brug → tilføjer et nyt modul til go.work, go workspace-filen.
- redigere → redigerer go workspace-filen.
- synkronisere → synkroniserer afhængigheder fra byggelisten til arbejdsområdemodulerne.
Inkluderingen af arbejdsområder til at gå ville øge produktiviteten som planlagt i udviklingen af sproget.
Præstationsforbedringer
Gå version 1.18 understøtter nu ARM64 Apple M1 og 64-bit PowerPC i ABI-opkaldskonventionen. Dette resulterer i over 10 % gevinst i CPU-ydeevne for brugere af disse enheder.
Erklærede og ubrugte variabler i funktioner logges nu som fejl ved programkompilering.
Det gå bygge kommando, sammen med andre relaterede kommandoer, understøtter -asan flag, som understøtter interoperabilitet med C/C++. Dette vil hjælpe Go-udviklere med at bruge Go-programmer med C- og C++-programmer.
Andre vigtige opdateringer
Det Hent command installerer ikke længere pakker i modul-bevidst tilstand, hvilket er en stor ændring fra da du kom først i gang med Go. Det gå til installation kommando erstatter få at justere modulafhængigheder på tværs af arbejdsområder.
Da typekontrollen nu håndterer generiske oplysninger, kan fejlmeddelelser logge anderledes end i tidligere versioner.
Tiden det tager for programmer at kompilere kan være langsommere i 1.18. Men dette vil ikke påvirke udførelsestiden, når først Go har kompileret dit program.
Du kan finde de fulde detaljer om alle de seneste ændringer i udgivelsesbemærkningerne til Gå 1.18.
Go 1.18 har flere forskellige tilføjelser
Ved at bruge Go 1.18 kan du nu skrive generisk kode, teste effektivt ved hjælp af fuzzing og skifte mellem Go-moduler ved hjælp af arbejdsområder. Du kan endda skrive kode, der fungerer sammen med C- og C++-programmer.
Er Golang værd at lære i dag?
Læs Næste
Relaterede emner
- Programmering
- Programmering
- Programmeringssprog
Om forfatteren
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere