Programmeringsspråket Go har utviklet seg mye siden det først ble publisert i 2009. Go 1.18 var en etterlengtet utgivelse på grunn av støtten for generiske medisiner og mange andre viktige oppdateringer.

Go ga ut versjon 1.18 i mars 2022. Her er en oversikt over de viktigste endringene.

Støtte for generiske medisiner

Generisk programmering lar deg skrive funksjoner som kan akseptere og returnere mer fleksible typer.

Før støtte for generiske artikler måtte du eksplisitt angi parametertyper og returtyper. Den enkleste formen for generikk lar deg spesifisere utypede parametere:

funcSkriv ut hva som helst[T noen](tingT) {
fmt.Skriv ut(ting)
}

Men generika gir mye mer kraft enn bare dette. Du kan deklarere nesten hvilken som helst kombinasjon og granularitet av typen for parametere. Du kan for eksempel bruke begrensninger pakke for å skrive en funksjon som opererer på en hvilken som helst verdi du kan bestille. Dette inkluderer int, flyter og strenger. Her er et eksempel som demonstrerer syntaksen:

instagram viewer
import "golang.org/x/exp/constraints"

funcMaks[T-begrensninger. Bestilte](input[]T) (maksT) {
for _, v := områdeinndata {
hvis v > maks {
maks = v
}
}

komme tilbake maks
}

Merk at denne funksjonen bruker den generiske typen, begrensninger. Bestilt, for å deklarere parameteren og returtypen.

Generikk gir usikkerhet og fleksibilitet i kode. Generics-forslaget og endringene er bakoverkompatible.

Fuzz-testing

Fuzzing er en teknikk for programvaretesting som validerer et program med feilaktige, uventede eller uforutsigbare data.

De testing pakken introduserer fuzzing i 1.18, så for å definere en fuzz, må du importere den fra standardbiblioteket:

import "testing"

Etter import av testing pakke, kan du sende en identifikator av typen *testing. F til testfunksjonen.

functestFunc(f *testing. F) {
// koden din
}

Fuzzing genererer inngangsparametere for testing av kode. Utfallet av fuzzing er uforutsigbart siden inngangene ikke er brukerdefinerte. Fuzzing skal hjelpe deg med å skrive bedre kodetester og fange opp feil du ikke visste eksisterte.

Gå Workspace Support

Arbeidsområder er kataloger med lignende kildekode som utgjør et prosjekt eller en større enhet. Arbeidsområder gjør det enklere å administrere og feilsøke kode ved å gruppere lignende kode basert på funksjonalitet.

Vanligvis deler du Go-prosjekter inn i kildekode (src) og kjørbare filer (bin). Go-verktøykjeden bygger kildekode fra førstnevnte til kjørbare filer i sistnevnte. Go-arbeidsområder lar utviklere jobbe med flere arbeidsområder ved å bruke Go-moduler med en bestemt hovedmodul.

Kommandoen for å lage arbeidsområder er:

$ gå på jobb <kommando>

Bruke arbeid kommando med underkommandoer som:

  • i det → oppretter et arbeidsområde i den angitte katalogen.
  • bruk → legger til en ny modul i go.work, go workspace-filen.
  • redigere → redigerer go workspace-filen.
  • synkronisere → synkroniserer avhengigheter fra byggelisten til arbeidsområdemodulene.

Inkludering av arbeidsområder å gå vil øke produktiviteten som planlagt i utviklingen av språket.

Ytelsesforbedringer

versjon 1.18 støtter nå ARM64 Apple M1 og 64-bit PowerPC i ABI-anropskonvensjonen. Dette resulterer i over 10 % gevinst i CPU-ytelse for brukere av disse enhetene.

Deklarerte og ubrukte variabler i funksjoner logges nå som feil ved programkompilering.

De gå bygge kommandoen, sammen med andre relaterte kommandoer, støtter -asan flagg, som støtter interoperabilitet med C/C++. Dette vil hjelpe Go-utviklere med å bruke Go-programmer med C- og C++-programmer.

Andre viktige oppdateringer

De gå og hent kommandoen installerer ikke lenger pakker i modulbevisst modus, noe som er en stor endring fra da du kom først i gang med Go. De gå installer kommando erstatter for å justere modulavhengigheter på tvers av arbeidsområder.

Siden typekontrolleren nå håndterer generikk, kan feilmeldinger logge annerledes enn i tidligere versjoner.

Tiden det tar for programmer å kompilere kan være tregere i 1.18. Men dette vil ikke påvirke utførelsestiden når Go har kompilert programmet ditt.

Du kan finne fullstendige detaljer om alle de siste endringene i utgivelsesnotatene for Gå 1.18.

Go 1.18 har flere forskjellige tillegg

Ved å bruke Go 1.18 kan du nå skrive generisk kode, teste effektivt ved å bruke fuzzing og bytte mellom Go-moduler ved å bruke arbeidsområder. Du kan til og med skrive kode som fungerer sammen med C- og C++-programmer.

Er Golang verdt å lære i dag?

Les Neste

DelekvitringDeleE-post

Relaterte temaer

  • Programmering
  • Programmering
  • Programmerings språk

Om forfatteren

MUO-ansatte

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere