Go 1.22 jau ir izlaists, uzziniet par tās jaunajām funkcijām un uzlabojumiem

Golande

Go ir vienlaicīga, kompilēta programmēšanas valoda ar statisku rakstīšanu, ko iedvesmojusi C sintakse.

Jaunā Go 1.22 versija ir pieejama sešus mēnešus pēc 1.21 versijas, un tajā ir iekļautas vairākas ievērojamas izmaiņas rīku komplektā, izpildlaikā, optimizācijas uzlabojumos, kompilatora uzlabojumos un bibliotēkās.

Tiem, kas nav pazīstami ar Go, jāpiemin, ka tā ir programmēšanas valoda, ko Google izstrādā ar kopienas līdzdalību kā hibrīda risinājumu, kas apvieno kompilēto valodu augsto veiktspēju ar tādām priekšrocībām kā skriptvalodas, piemēram, koda rakstīšanas vienkāršība, izstrādes ātrums un kļūdu aizsardzība.

Iet 1.22 galvenās ziņas

Šajā jaunajā versijā, kas ieviesta no Go 1.22, izceļas divas izmaiņas "for" ciklos . Iepriekš mainīgie, ko deklarēja "for" cikls, tika izveidoti vienu reizi un atjaunināti katrā iterācijā. Go 1.22 versijā katra cikla iterācija izveido jaunus mainīgos, lai novērstu nejaušas koplietošanas kļūdas. Turklāt tika pievienots eksperimentāls atbalsts (GOEXPERIMENT=rangefunc) diapazona funkcijām "for" ciklos, kas ļauj norādīt funkciju kā iteratoru. Tika atrisināta arī ilgstoša problēma ar "for" cikliem, kas izraisīja korutīnas izsaukumus, lai koplietotu cikla mainīgos starp iterācijām . Turklāt "for" cikli tagad var iterēt pa veseliem skaitļiem. Piemēram:

pakotnes galvenā importēšana "fmt" func main() { priekš i := diapazons 10 { fmt.Println(10 - i) } fmt.Println("go1.22 paceļas!")}

Vēl viena ievērojama izmaiņa šajā jaunajā versijā ir iespēja izmantot direktoriju " vendor " , kurā ir darbvietas atkarības. Komandas tagad var izmantot šo direktoriju, kas tiek izveidots ar ` go work vendor` un tiek izmantots veidošanas komandās, kad ` -mod` ir iestatīts uz " vendor ", kas ir noklusējuma iestatījums, ja darbvietā pastāv direktorijs " vendor ".

Ir svarīgi atzīmēt, ka ` go get` funkcionalitāte vairs netiek atbalstīta ārpus moduļa mantotā GOPATH režīmā. Tomēr citas veidošanas komandas, piemēram, `go build` un `go test`, turpinās darboties bezgalīgi mantotajās GOPATH programmās. Turklāt komanda `go mod init` vairs nemēģinās importēt moduļu prasības no citu piegādātāju rīku konfigurācijas failiem (piemēram, Gopkg.lock).

Go 1.22 versijā ir ieviesta jauna io/unsafe pakotne , kas nodrošina funkcionalitāti darbam ar rādītājiem un nedrošu atmiņu . Šī pakotne piedāvā metodes rādītāju konvertēšanai no drošiem uz nedrošiem tipiem, kā arī atmiņas kopēšanas darbību veikšanai, nepārbaudot robežas.

Turpinājās darbs pie kompilatora optimizāciju iekļaušanas, pamatojoties uz PGO koda profilēšanas rezultātiem . Kompilators tagad izmanto devirtualizācijas rīkus, lai aizstātu netiešos izsaukumus no dažādām metodēm ar paplašinātu iekļauto bloku izpildi. Kad PGO tika iespējots, šīs izmaiņas uzlaboja vairuma programmu veiktspēju par 2% līdz 14%.

Go Windows versijā programmas, kas saista vai ielādē Go bibliotēkas, kas veidotas ar -buildmode=c-archive vai -buildmode=c-shared, tagad var izmantot Windows notikumu reģistrēšanas (ETW) API, izmantojot jaunās izpildlaika/trace un tracehook pakotnes , kas ievieš Go notikumu izsekošanas apkopošanas protokolu kā ETW nodrošinātāju.

Starp pārējām izmaiņām, kas izceļas:

  • Komanda iet pārbaudīt - vāks tagad drukā pārklājuma kopsavilkumus aptvertajām pakotnēm, kurām nav savu testa failu.
  • os/exec, ir pievienota iespēja definēt konteksta atribūtus, kas ļauj iestatīt tādas vērtības kā darba direktorijs, vides mainīgie un ievades/izvades faila deskriptors izpildītajām komandām.
  • Optimizēta atmiņas pārvaldība izpildlaikā, kā rezultātā lielākajai daļai lietojumprogrammu tiek palielināta veiktspēja par 1–3% un atmiņas patēriņš samazinās par 1%.
  • El paquete net/http, funkcija ir pievienota CloseIdleConnections HTTP klientam, kas aizver visus dīkstāves savienojumus, ko klients nesen ir izmantojis
  • Kompilatoram ir pievienota uzlabota izsaukuma ievietošanas mehānisma eksperimentālā ieviešana (GOEXPERIMENT=newliner), kas izmanto heiristiku, lai nodalītu svarīgas darbības no nesvarīgām.
  • Pakete ir pievienota » math/rand/v2 » uz standarta bibliotēku, kas piedāvā konsekventāku API un izmanto ātrākus algoritmus, lai ģenerētu pseidogadījuma skaitļus.
  • El paquete net/http.ServeMux Pievienota iespēja veidnēs norādīt metodes un maskas.

Visbeidzot, ja vēlaties uzzināt vairāk, informāciju varat atrast tālāk norādītajā saitē.


Pievienot kā vēlamo avotu pakalpojumā Google