Go 1.22 už bol vydaný, prečítajte si o jeho nových funkciách a vylepšeniach

goland

Go je súbežný kompilovaný programovací jazyk so statickým písaním inšpirovaným syntaxou C.

Nová verzia Go 1.22, prichádza šesť mesiacov po verzii 1.21, s množstvom významných zmien v súprave nástrojov, runtime, optimalizačných vylepšeniach, kompilátoroch a knižniciach.

Pre tých, ktorí o Go nevedia, musím povedať, že toto jeJe to programovací jazyk vyvíjaný spoločnosťou Google za účasti komunity ako hybridného riešenia, ktoré kombinuje vysoký výkon kompilovaných jazykov s výhodami, ako sú skriptovacie jazyky, ako je jednoduchosť písania kódu, rýchlosť vývoja a ochrana proti chybám.

Hlavné nové funkcie aplikácie Go 1.22

V tejto novej verzii, ktorá je predstavená od verzie Go 1.22, sú najdôležitejšie dve zmeny v slučkách „for“.pretože Predtým boli premenné deklarované cyklom for vytvorené raz a boli aktualizované v každej iterácii. V Go 1.22 každá iterácia cyklu vytvára nové premenné aby ste sa navyše vyhli náhodným chybám pri zdieľaní Pridaná experimentálna podpora (GOEXPERIMENT=rangefunc) pre funkcie rozsahu do cyklov for, ktorý vám umožňuje špecifikovať funkciu ako iterátor a vyriešil dlhotrvajúci problém so slučkami for čo spôsobilo, že volania korutíny zdieľali premenné slučky medzi iteráciami. Navyše, cykly for teraz môžu prechádzať celými číslami. Napríklad:

package main import "fmt" func main() { for i := rozsah 10 { fmt.Println(10 - i) } fmt.Println("go1.22 štartuje!") }

Ďalšou významnou zmenou v tejto novej verzii je zavedenie schopnosť používať adresár «predajcu« ktorý obsahuje závislosti pracovného priestoru. Teraz príkazy môžete použiť tento adresár, ktorý je vytvorený pomocou `ísť pracovať predavač` a používa sa v príkazoch na zostavenie keď je nastavené `-mod` v «predajcu«, toto je predvolená hodnota, keď adresár existuje «predajcu» v pracovnom priestore.

Je dôležité poznamenať, že funkčnosť `choď si zohnať` už nie je podporovaný mimo modulu v režime GOPATH zdedené Avšak, iné príkazy na zostavenie ako `go build` a `go test` Budú pokračovať v práci na dobu neurčitú pre staršie programy GOPATH. Ďalej príkaz `prejsť na mod init` sa už nebude pokúšať importovať požiadavky na modul z konfiguračných súborov iných «"predaj" (ako Gopkg.lock).

Go 1.22 predstavuje a nový balík io/nebezpečné ktorý poskytuje funkčnosť pre prácu s ukazovateľmi a nebezpečnou pamäťou. Tento balík poskytuje metódy na konverziu ukazovateľov na az bezpečných a nebezpečných typov, ako aj na vykonávanie operácií kopírovania pamäte bez kontroly hraníc.

Pokračovali práce na optimalizáciách v kompilátore na základe výsledkov sprofilovanie kódu PGO, a je to teraz kompilátor používa devirtualizačné nástroje na nahradenie nepriamych volaní rôznych metód s rozšíreným vykonávaním inline bloku. Keď bolo povolené PGO, pridaná zmena zlepšila výkon väčšiny programov o 2 % až 14 %.

Vo verzii Choďte na Windows, programy, ktoré prepájajú alebo načítavajú knižnice Stavať s -buildmode=c-archív o -buildmode=c-shared teraz môže používať rozhranie API systému Windows (ETW) na zaznamenávanie udalostí prostredníctvom nových balíkov runtime/trace y tracehook, ktoré implementujú protokol zberu sledovania udalostí Go ako poskytovateľ ETW.

Z ďalších zmien, ktoré vynikajú:

  • Príkaz choď na test-kryt teraz tlačí súhrny pokrytia pre zahrnuté balíky, ktoré nemajú svoje vlastné testovacie súbory.
  • os/exec, bola pridaná možnosť definovať kontextové atribúty, čo vám umožňuje nastaviť hodnoty, ako je pracovný adresár, premenné prostredia a deskriptor vstupného/výstupného súboru pre vykonávané príkazy.
  • Optimalizovaná správa pamäte za behu, výsledkom čoho je zvýšenie výkonu o 1 – 3 % a zníženie spotreby pamäte o 1 % pre väčšinu aplikácií.
  • El paquete net/http, funkcia bola pridaná CloseIdleConnections ku klientovi HTTP, čím sa zatvoria všetky nečinné pripojenia, ktoré klient nedávno použil
  • Do kompilátora bola pridaná vylepšená experimentálna implementácia (GOEXPERIMENT=newinliner) mechanizmu vkladania hovorov, ktorý využíva heuristiku na oddelenie dôležitých operácií od nedôležitých.
  • Balíček bol pridaný » matematika/rand/v2 » do štandardnej knižnice, ktorá ponúka konzistentnejšie API a používa rýchlejšie algoritmy na generovanie pseudonáhodných čísel.
  • El paquete net/http.ServeMux Pridaná možnosť špecifikovať metódy a masky v šablónach.

Nakoniec, ak ste záujem dozvedieť sa o tom viac, môžete skontrolovať podrobnosti Na nasledujúcom odkaze.


Pridať ako preferovaný zdroj v Google