Go 1.22 har allerede blitt utgitt, lær om nye funksjoner og forbedringer

goland

Go er et samtidig, kompilert programmeringsspråk med statisk skriving inspirert av C-syntaks.

Den nye versjonen av Go 1.22, kommer seks måneder etter versjon 1.21, med en rekke bemerkelsesverdige endringer i verktøysettet, kjøretid, optimaliseringsforbedringer, kompilatorforbedringer og biblioteker.

For de som ikke vet om Go, må jeg fortelle deg at dette erDet er et programmeringsspråk som utvikles av Google med deltakelse av fellesskapet som en hybridløsning som kombinerer den høye ytelsen til kompilerte språk med fordeler som skriptspråk som enkel skriving av kode, hastighet på utvikling og beskyttelse mot feil.

De viktigste nye funksjonene i Go 1.22

I denne nye versjonen, som introduseres fra Go 1.22, fremheves to endringer i "for"-løkkene, siden Tidligere ble variabler deklarert av en for-løkke opprettet én gang og ble oppdatert i hver iterasjon. I Go 1.22 skaper hver iterasjon av løkken nye variabler for å unngå utilsiktede delingsfeil, i tillegg Lagt til eksperimentell støtte (GOEXPERIMENT=rangefunc) for rekkeviddefunksjoner til for looper, som lar deg spesifisere en funksjon som en iterator og løst et langvarig problem med for loops som førte til at coroutine-anrop delte sløyfevariabler mellom iterasjoner. I tillegg kan for loops nå gå gjennom heltall. For eksempel:

pakke hovedimport "fmt" func main() { for i := range 10 { fmt.Println(10 - i) } fmt.Println("go1.22 tar av!") }

En annen bemerkelsesverdig endring i denne nye versjonen er introduksjonen av muligheten til å bruke en katalog «leverandør« som inneholder arbeidsområdeavhengighetene. Nå kommandoene du kan bruke denne katalogen, som er opprettet med `gå på jobb leverandør` og brukes i byggekommandoer når ` er satt-mod` i «leverandør«, dette er standardverdien når en katalog eksisterer «leverandør» i arbeidsområdet.

Det er viktig å merke seg at funksjonaliteten til `gå og hent` støttes ikke lenger utenfor en modul i modus GOPATH arvet Men andre byggekommandoer som "gå bygge" og "gå til test". De vil fortsette å jobbe på ubestemt tid for eldre GOPATH-programmer. Videre kommandoen `go mod init` vil ikke lenger prøve å importere modulkrav fra konfigurasjonsfiler til andre «"leverandør" (som Gopkg.lock).

Go 1.22 introduserer en ny pakke io/utrygt som gir funksjonalitet for å jobbe med pekere og usikkert minne. Denne pakken inneholder metoder for å konvertere pekere til og fra sikre og usikre typer, samt for å utføre minnekopieringsoperasjoner uten grensekontroll.

Arbeidet fortsatte med å inkludere optimaliseringer i kompilatoren basert på resultatene fra sPGO-kodeprofilering, og er det nå bruker kompilatoren devirtualiseringsverktøy for å erstatte indirekte anrop av ulike metoder med utvidet inline blokkkjøring. Da PGO ble aktivert, forbedret den ekstra endringen ytelsen til de fleste programmer med 2 % til 14 %.

I versjonen av Gå for Windows, programmer som kobler eller laster inn biblioteker Gå bygget med -buildmode=c-arkiv o -buildmode=c-delt kan nå bruke Event Logging Windows (ETW) API gjennom de nye pakkene kjøretid/sporing y sporkrok, som implementerer Go-hendelsessporingsprotokollen som en ETW-leverandør.

Av de andre endringene som skiller seg ut:

  • Kommandoen gå test -cover skriver nå ut dekningssammendrag for dekkede pakker som ikke har egne testfiler.
  • os/exec, muligheten til å definere kontekstattributter er lagt til, slik at du kan angi verdier som arbeidskatalogen, miljøvariabler og input/output filbeskrivelse for utførte kommandoer.
  • Optimalisert minneadministrasjon i kjøretid, noe som resulterer i en ytelsesøkning på 1-3 % og en reduksjon på 1 % i minneforbruk for de fleste applikasjoner.
  • El paquete net/http, er funksjonen lagt til CloseIdleConnections til HTTP-klienten, som lukker alle inaktive tilkoblinger som klienten nylig har brukt
  • En forbedret eksperimentell implementering (GOEXPERIMENT=newinliner) av anropsinnsettingsmekanismen er lagt til kompilatoren, som bruker heuristikk for å skille viktige operasjoner fra ikke-viktige.
  • Pakken er lagt til » matematikk/rand/v2 » til standardbiblioteket, som tilbyr et mer konsistent API og bruker raskere algoritmer for å generere pseudorandomtall.
  • El paquete net/http.ServeMux Lagt til muligheten til å spesifisere metoder og masker i maler.

Til slutt, hvis du er det interessert i å vite mer om det, kan du sjekke detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.