Go on samaaegne, kompileeritud programmeerimiskeel, millel on C-süntaksist inspireeritud staatiline tippimine.
Uus versioon Go 1.22, saabub kuus kuud pärast versiooni 1.21, mitmete märkimisväärsete muudatustega tööriistakomplektis, käitusajas, optimeerimise täiustustes, kompilaatori täiustustes ja teekides.
Neile, kes Go'st ei tea, pean ütlema, et see on niiSee on programmeerimiskeel, mida arendab Google kogukonna osalusel hübriidlahendusena, mis ühendab kompileeritud keelte suure jõudluse eelistega, nagu skriptikeeled, nagu koodi kirjutamise lihtsus, arenduskiirus ja kaitse vigade eest.
Go 1.22 peamised uued funktsioonid
Selles uues versioonis, mis on kasutusele võetud versioonist Go 1.22, on esile tõstetud kaks muudatust "for" tsüklitesKui Varem loodi for-tsükliga deklareeritud muutujad üks kord ja neid värskendati igas iteratsioonis. Versioonis Go 1.22 loob tsükli iga iteratsioon uusi muutujaid juhuslike jagamisvigade vältimiseks Silmustele on lisatud vahemikufunktsioonide eksperimentaalne tugi (GOEXPERIMENT=rangefunc), mis võimaldab määrata funktsiooni iteraatorina ja lahendas for-silmustega pikaajalise probleemi mis pani korutiinikutsed jagama tsüklimuutujaid iteratsioonide vahel. Lisaks saab for silmuseid nüüd täisarvude kaudu ringi käia. Näiteks:
paketi põhiimport "fmt" func main() { for i := vahemik 10 { fmt.Println(10 - i) } fmt.Println("go1.22 stardib!") }
Veel üks märkimisväärne muudatus selles uues versioonis on kataloogi kasutamise võimalus «müüja« mis sisaldab tööruumi sõltuvusi. Nüüd käsud saate kasutada seda kataloogi, mis luuakse `mine müüja tööle` ja seda kasutatakse ehituskäskudes kui ` on määratud-mod` in «müüja«, see on vaikeväärtus, kui kataloog on olemas «müüja» tööalal.
Oluline on märkida, et funktsionaalsus `mine võta` ei toetata enam väljaspool režiimis olevat moodulit GOPATH päritud Kuid muud ehituskäsud nagu `mine ehita` ja `mine testi` Nad jätkavad tööd GOPATHi pärandprogrammide jaoks määramata aja jooksul. Lisaks käsk `mine mod init` ei proovi enam importida mooduli nõudeid teiste konfiguratsioonifailidest"müüja" (nagu Gopkg.lock).
Go 1.22 tutvustab a uus pakett io/ebaturvaline mis pakub funktsionaalsust osutite ja ebaturvalise mäluga töötamiseks. See pakett pakub meetodeid osutite teisendamiseks ohututeks ja ebaturvalisteks tüüpideks, samuti mälu kopeerimistoimingute tegemiseks ilma piiride kontrollimiseta.
Jätkus töö optimeerimiste kaasamisega kompilaatorisse lk tulemuste põhjalPGO-koodi profileerimine, ja kas see ongi nüüd kasutab kompilaator kaudsete kõnede asendamiseks devirtualiseerimistööriistu mitmesugused meetodid koos laiendatud reasisese ploki täitmisega. Kui PGO oli lubatud, parandas lisatud muudatus enamiku programmide jõudlust 2% kuni 14%.
Versioonis Valige Windows, programmid, mis lingivad või laadivad teeke Minge koos ehitama -buildmode=c-archive o -buildmode=c-shared saab nüüd kasutada sündmuste logimise Windowsi (ETW) API-t läbi uute pakettide käitusaeg/jälg y tracehook, mis rakendavad ETW pakkujana Go sündmuste jälituste kogumise protokolli.
Muudest silmapaistvatest muudatustest:
- Käsk mine proovi -kaas prindib nüüd katvuse kokkuvõtted kaetud pakettide kohta, millel pole oma testfaile.
- os/exec, on lisatud kontekstiatribuutide määratlemise võimalus, mis võimaldab teil määrata käivitatavate käskude jaoks selliseid väärtusi nagu töökataloog, keskkonnamuutujad ja sisend-/väljundfaili deskriptor.
- Optimeeritud mäluhaldus käitusajal, mille tulemuseks on enamiku rakenduste jõudluse kasv 1–3% ja mälukulu vähenemine 1%.
- El paquete net/http, funktsioon on lisatud CloseIdleConnections HTTP-kliendile, mis sulgeb kõik jõudeolevad ühendused, mida klient on hiljuti kasutanud
- Kompilaatorisse on lisatud kõne sisestamise mehhanismi täiustatud eksperimentaalne teostus (GOEXPERIMENT=newinliner), mis kasutab heuristikat oluliste operatsioonide eraldamiseks ebaolulistest.
- Pakett on lisatud » matemaatika/rand/v2 » standardse teeki, mis pakub ühtsemat API-t ja kasutab pseudojuhuslike arvude genereerimiseks kiiremaid algoritme.
- El paquete net/http.ServeMux Lisatud võimalus määrata mallides meetodeid ja maske.
Lõpuks, kui olete huvitatud sellest rohkem teada, saate üksikasju kontrollida Järgmisel lingil.