Go 1.22 er allerede blevet frigivet, lær om dens nye funktioner og forbedringer

goland

Go er et samtidig, kompileret programmeringssprog med statisk skrivning inspireret af C-syntaks.

Den nye version af Go 1.22, ankommer seks måneder efter version 1.21, med en række bemærkelsesværdige ændringer til værktøjssættet, runtime, optimeringsforbedringer, compilerforbedringer og biblioteker.

For dem, der ikke kender til Go, må jeg fortælle dig, at dette erDet er et programmeringssprog, der udvikles af Google med deltagelse af fællesskabet som en hybridløsning, der kombinerer den høje ydeevne af kompilerede sprog med fordele såsom scriptsprog, såsom nem at skrive kode, hastighed på udvikling og beskyttelse mod fejl.

Vigtigste nye funktioner i Go 1.22

I denne nye version, som introduceres fra Go 1.22, fremhæves to ændringer i "for"-løkkernefordi Tidligere blev variabler deklareret af en for-løkke oprettet én gang og blev opdateret i hver iteration. I Go 1.22 skaber hver iteration af løkken nye variabler for at undgå utilsigtede delingsfejl Tilføjet eksperimentel understøttelse (GOEXPERIMENT=rangefunc) for rangefunktioner til for loops, som giver dig mulighed for at angive en funktion som en iterator og løst et langvarigt problem med for loops hvilket fik coroutine-kald til at dele loop-variabler mellem iterationer. Derudover kan for loops nu gå gennem heltal. For eksempel:

pakke hovedimport "fmt" func main() { for i := område 10 { fmt.Println(10 - i) } fmt.Println("go1.22 starter!") }

En anden bemærkelsesværdig ændring i denne nye version er introduktionen af mulighed for at bruge en mappe «sælger« som indeholder arbejdsområdets afhængigheder. Nu kommandoerne du kan bruge denne mappe, som er oprettet med `gå på arbejde sælger` og bruges i build-kommandoer når ` er indstillet-mod` i «sælger«, dette er standardværdien, når der findes en mappe «sælger» i arbejdsrummet.

Det er vigtigt at bemærke, at funktionaliteten af `Hent` understøttes ikke længere uden for et modul i tilstand GOPATH arvet Men andre build-kommandoer som 'go build' og 'go test' De vil fortsætte med at arbejde på ubestemt tid for ældre GOPATH-programmer. Desuden kommandoen 'go mod init' vil ikke længere forsøge at importere modulkrav fra andres konfigurationsfiler «"leverandør" (som Gopkg.lock).

Go 1.22 introducerer en ny pakke io/usikker som giver funktionalitet til at arbejde med pointere og usikker hukommelse. Denne pakke indeholder metoder til at konvertere pointere til og fra sikre og usikre typer, samt til at udføre hukommelseskopieringsoperationer uden grænsekontrol.

Arbejdet fortsatte med at inkludere optimeringer i compileren baseret på resultaterne af sPGO kode profilering, y es que nu bruger compileren devirtualiseringsværktøjer til at erstatte indirekte opkald af forskellige metoder med udvidet inline blokudførelse. Da PGO blev aktiveret, forbedrede den tilføjede ændring ydeevnen for de fleste programmer med 2 % til 14 %.

I versionen af Gå efter Windows, programmer, der linker eller indlæser biblioteker Gå bygget med -buildmode=c-arkiv o -buildmode=c-delt kan nu bruge Event Logging Windows (ETW) API gennem de nye pakker runtime/sporing y sporkrog, som implementerer Go hændelsessporingsindsamlingsprotokollen som en ETW-udbyder.

Af de andre ændringer, der skiller sig ud:

  • Kommandoen gå test -cover udskriver nu dækningsoversigter for dækkede pakker, der ikke har deres egne testfiler.
  • os/exec, er muligheden for at definere kontekstattributter blevet tilføjet, hvilket giver dig mulighed for at indstille værdier såsom arbejdsbiblioteket, miljøvariabler og input/output filbeskrivelse for udførte kommandoer.
  • Optimeret hukommelsesstyring i runtime, hvilket resulterer i en 1-3 % ydelsesforøgelse og en 1 % reduktion i hukommelsesforbrug for de fleste applikationer.
  • El paquete net/http, funktionen er tilføjet CloseIdleConnections til HTTP-klienten, som lukker alle ledige forbindelser, som klienten for nylig har brugt
  • En forbedret eksperimentel implementering (GOEXPERIMENT=newinliner) af opkaldsindsættelsesmekanismen er blevet tilføjet til compileren, som bruger heuristik til at adskille vigtige operationer fra ikke-vigtige.
  • Pakken er tilføjet » matematik/rand/v2 » til standardbiblioteket, som tilbyder en mere konsistent API og bruger hurtigere algoritmer til at generere pseudotilfældige tal.
  • El paquete net/http.ServeMux Tilføjet muligheden for at specificere metoder og masker i skabeloner.

Endelig, hvis du er interesseret i at vide mere om det, du kan kontrollere detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.