Go je konkurentni, kompilirani programski jezik sa statičkim tipkanjem inspiriranim C sintaksom.
Nova verzija sustava Go 1.22, stiže šest mjeseci nakon verzije 1.21, s brojnim značajnim promjenama skupa alata, vremena izvođenja, poboljšanja optimizacije, poboljšanja prevoditelja i biblioteka.
Za one koji ne znaju za Go, moram vam reći da je ovoTo je programski jezik koji razvija Google uz sudjelovanje zajednice kao hibridno rješenje koje kombinira visoke performanse kompajliranih jezika s prednostima kao što su skriptni jezici kao što su lakoća pisanja koda, brzina razvoja i zaštita od pogreš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" petljamakao Prije su se varijable deklarirane for petljom stvarale jednom i ažurirani su u svakoj iteraciji. U Go 1.22 svaka iteracija petlje stvara nove varijable osim toga kako biste izbjegli slučajne pogreške u dijeljenju Dodana je eksperimentalna podrška (GOEXPERIMENT=rangefunc) za funkcije raspona u for petlje, koji vam omogućuje da odredite funkciju kao iterator i riješio je dugogodišnji problem s for petljama što je uzrokovalo pozive korutine da dijele varijable petlje između iteracija. Osim toga, for petlje sada mogu prolaziti kroz cijele brojeve. Na primjer:
package main import "fmt" func main() { for i := range 10 { fmt.Println(10 - i) } fmt.Println("go1.22 polijeće!") }
Još jedna značajna promjena u ovoj novoj verziji je uvođenje sposobnost korištenja imenika «prodavač« koji sadrži ovisnosti radnog prostora. Sada naredbe možete koristiti ovaj direktorij, koji je kreiran s `go work vendor` i koristi se u naredbama za izgradnju kada je ` postavljeno-mod` u «prodavač« ovo je zadana vrijednost kada direktorij postoji «prodavač» u radnom prostoru.
Važno je napomenuti da je funkcionalnost `idi po` više nije podržan izvan modula u načinu rada GOPATH naslijeđeno Međutim, druge naredbe izgradnje poput `idi izgradi` i `idi testiraj` Oni će nastaviti raditi na neodređeno vrijeme za naslijeđene GOPATH programe. Nadalje, zapovijed `idi mod init` više neće pokušavati uvesti zahtjeve modula iz konfiguracijskih datoteka drugih «“prodaja” (poput Gopkg.lock).
Go 1.22 uvodi a novi paket io/nesiguran koji pruža funkcionalnost za rad s pokazivačima i nesigurnom memorijom. Ovaj paket pruža metode za pretvaranje pokazivača na 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 kompajler na temelju rezultata strProfiliranje PGO koda, i to je to sada kompajler koristi alate za devirtualizaciju da zamijeni neizravne pozive različitih metoda s proširenim inline blok izvođenjem. Kada je PGO bio omogućen, dodana promjena poboljšala je performanse većine programa za 2% do 14%.
U inačici Odaberite Windows, programe koji povezuju ili učitavaju biblioteke Krenite graditi sa -buildmode=c-arhiva o -buildmode=c-dijeljeno sada može koristiti Event Logging Windows (ETW) API kroz nove pakete vrijeme izvođenja/trag y tracehook, koji implementiraju Go protokol prikupljanja praćenja događaja kao ETW pružatelj.
Od ostalih istaknutih promjena:
- Naredba idi test -poklopac sada ispisuje sažetke pokrivenosti za pokrivene pakete koji nemaju vlastite testne datoteke.
- os/izvrš, dodana je mogućnost definiranja atributa konteksta, što vam omogućuje postavljanje vrijednosti kao što su radni direktorij, varijable okruženja i deskriptor ulazno/izlazne datoteke za izvršene naredbe.
- Optimizirano upravljanje memorijom tijekom izvođenja, što rezultira povećanjem performansi od 1-3% i smanjenjem potrošnje memorije od 1% za većinu aplikacija.
- El paquete net/http, funkcija je dodana CloseIdleConnections na HTTP klijent, koji zatvara sve neaktivne veze koje je klijent nedavno koristio
- Poboljšana eksperimentalna implementacija (GOEXPERIMENT=newinliner) mehanizma za umetanje poziva dodana je prevoditelju, koji koristi heuristiku za odvajanje važnih operacija od nevažnih.
- Paket je dodan » matematika/rand/v2 » standardnoj biblioteci, koja nudi dosljedniji API i koristi brže algoritme za generiranje pseudoslučajnih brojeva.
- El paquete net/http.ServeMux Dodana mogućnost određivanja metoda i maski u predlošcima.
Konačno, ako jesi zainteresirani za saznanje više o tome, možete provjeriti detalje U sljedećem linku.