Go 1.22 je već objavljen, saznajte više o njegovim novim karakteristikama i poboljšanjima

goland

Go je konkurentni, kompajlirani programski jezik sa statičkim kucanjem inspirisan C sintaksom.

Nova verzija Go 1.22, stiže šest mjeseci nakon verzije 1.21, sa brojnim značajnim promjenama u skupu alata, vremenu izvođenja, poboljšanjima optimizacije, poboljšanjima kompajlera i bibliotekama.

Za one koji ne znaju za Go, moram vam reći da je ovoTo je programski jezik koji razvija Google uz učešće zajednice kao hibridno rešenje koje kombinuje visoke performanse kompajliranih jezika sa prednostima kao što su skript jezici kao što su jednostavnost pisanja koda, brzina razvoja i zaštita od grešaka.

Glavne nove značajke Go 1.22

U ovoj novoj verziji, koja je predstavljena od Go 1.22, ističe se dvije promjene u "for" petlji, since Ranije su varijable deklarirane u for petlji kreirane jednom i ažurirani su u svakoj iteraciji. U Go 1.22, svaka iteracija petlje stvara nove varijable da biste izbjegli slučajne greške u dijeljenju, osim toga Dodata eksperimentalna podrška (GOEXPERIMENT=rangefunc) za funkcije raspona u for petlje, koji vam omogućava da specificirate funkciju kao iterator i riješen je dugogodišnji problem sa for petljama što je uzrokovalo pozive korutine da dijele varijable petlje između iteracija. Dodatno, for petlje sada mogu da se kreću kroz cijele brojeve. Na primjer:

paket glavni import "fmt" func main() { for i := opseg 10 { fmt.Println(10 - i) } fmt.Println("go1.22 poleti!") }

Još jedna značajna promjena u ovoj novoj verziji je uvođenje mogućnost korištenja direktorija «dobavljača« koji sadrži zavisnosti radnog prostora. Sada komande možete koristiti ovaj direktorij, koji je kreiran pomoću `idi radi prodavac` i koristi se u naredbama izgradnje kada je ` postavljeno-mod` u «dobavljača«, ovo je zadana vrijednost kada postoji direktorij «dobavljača» u radnom prostoru.

Važno je napomenuti da je funkcionalnost od `idi uzmi` više nije podržan izvan modula u načinu rada GOPATH naslijeđeno Međutim, druge naredbe za izgradnju poput `idi graditi` i `idi testiraj` Oni će nastaviti da rade na neodređeno vreme za stare programe GOPATH. Štaviše, komanda `idi mod init` više neće pokušavati uvesti zahtjeve modula iz konfiguracijskih datoteka drugih «"prodaja" (kao Gopkg.lock).

Go 1.22 uvodi a novi paket io/nesigurno koji pruža funkcionalnost za rad sa pokazivačima i nesigurnom memorijom. Ovaj paket pruža metode za pretvaranje pokazivača u i iz sigurnih i nesigurnih tipova, kao i za izvođenje operacija kopiranja memorije bez provjere granica.

Nastavljen je rad na uključivanju optimizacija u kompajleru na osnovu rezultata strprofiliranje PGO koda, y es que sada kompajler koristi alate za devirtualizaciju da zameni indirektne pozive različitih metoda s proširenim inline blok izvršavanjem. Kada je PGO omogućen, dodata promjena je poboljšala performanse većine programa za 2% do 14%.

U verziji Idite na Windows, programe koji povezuju ili učitavaju biblioteke Krenite graditi sa -buildmode=c-arhiva o -buildmode=c-dijeljeno sada može koristiti Windows (ETW) API za evidentiranje događaja kroz nove pakete runtime/trace y tracehook, koji implementiraju Go protokol prikupljanja tragova događaja kao ETW provajder.

Od ostalih promjena koje se ističu:

  • Naredba idi testiraj -cover sada ispisuje sažetke pokrivenosti za pokrivene pakete koji nemaju vlastite testne datoteke.
  • os/exec, dodana je mogućnost definiranja atributa konteksta, što vam omogućava da postavite vrijednosti kao što su radni direktorij, varijable okruženja i deskriptor ulazne/izlazne datoteke za izvršene naredbe.
  • Optimizirano upravljanje memorijom tokom rada, što rezultira povećanjem performansi od 1-3% i smanjenjem potrošnje memorije za većinu aplikacija.
  • Paket net/http, funkcija je dodana CloseIdleConnections HTTP klijentu, koji zatvara sve neaktivne veze koje je klijent nedavno koristio
  • Poboljšana eksperimentalna implementacija (GOEXPERIMENT=newinliner) mehanizma za umetanje poziva je dodata kompajleru, koji koristi heuristiku za odvajanje važnih operacija od nevažnih.
  • Paket je dodan » math/rand/v2 » u standardnu ​​biblioteku, koja nudi konzistentniji API i koristi brže algoritme za generiranje pseudoslučajnih brojeva.
  • Paket net/http.ServeMux Dodata mogućnost specificiranja metoda i maski u šablonima.

Konačno, ako jesi zainteresovani da saznaju više o tome, možete provjeriti detalje Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.