Go 1.22 tashmë është lëshuar, mësoni për veçoritë dhe përmirësimet e tij të reja

goland

Go është një gjuhë programimi e përpiluar njëkohësisht me shtypje statike e frymëzuar nga sintaksa C.

Versioni i ri i Shko 1.22, arrin gjashtë muaj pas versionit 1.21, me një numër ndryshimesh të dukshme në grupin e mjeteve, kohën e ekzekutimit, përmirësimet e optimizimit, përmirësimet e përpiluesit dhe bibliotekat.

Për ata që nuk dinë për Go, duhet t'ju them se kjo ështëËshtë një gjuhë programimi që po zhvillohet nga Google me pjesëmarrjen e komunitetit si një zgjidhje hibride që kombinon performancën e lartë të gjuhëve të përpiluara me avantazhe të tilla si gjuhët e skriptimit si lehtësia e shkrimit të kodit, shpejtësia e zhvillimit dhe mbrojtja nga gabimet.

Karakteristikat kryesore të reja të Go 1.22

Në këtë version të ri, i cili është prezantuar nga Go 1.22, thekson dy ndryshime në sythe "për"., pasi që Më parë, variablat e deklaruar nga një cikli for u krijuan një herë dhe u përditësuan në çdo përsëritje. Në Go 1.22, çdo përsëritje e lakut krijon variabla të reja për të shmangur gabimet aksidentale të ndarjes, përveç kësaj U shtua mbështetje eksperimentale (GOEXPERIMENT=rangefunc) për funksionet e diapazonit në sythe për, i cili ju lejon të specifikoni një funksion si përsëritës dhe zgjidhi një problem të kahershëm me unazat për gjë që shkaktoi thirrjet korutine për të ndarë variablat e ciklit midis përsëritjeve. Për më tepër, unazat for tani mund të kalojnë nëpër numra të plotë. Për shembull:

importi kryesor i paketës "fmt" func main() { for i := varg 10 { fmt.Println(10 - i) } fmt.Println("go1.22 nis!") }

Një tjetër ndryshim i dukshëm në këtë version të ri është prezantimi i aftësia për të përdorur një direktori «shitës« i cili përmban varësitë e hapësirës së punës. Tani komandat ju mund të përdorni këtë direktori, e cila është krijuar me `shko pune shites` dhe përdoret në komandat e ndërtimit kur ` është vendosur-mod"në"shitës", kjo është vlera e paracaktuar kur ekziston një direktori "shitës» në hapësirën e punës.

Është e rëndësishme të theksohet se funksionaliteti i `Shko merre` nuk mbështetet më jashtë një moduli në modalitet GOPATH trashëguar Megjithatë, komandat e tjera të ndërtimit si 'shko ndërto' dhe 'shko testo' Ata do të vazhdojnë të punojnë pafundësisht për programet e vjetra GOPATH. Për më tepër, komanda "shko mod init". nuk do të përpiqet më të importojë kërkesat e modulit nga skedarët e konfigurimit të «"shitës" (si Gopkg.bllokoj).

Shko 1.22 prezanton a paketë e re io/i pasigurt i cili ofron funksionalitet për të punuar me tregues dhe memorie të pasigurt. Kjo paketë ofron metoda për konvertimin e treguesve në dhe nga lloje të sigurta dhe të pasigurta, si dhe për kryerjen e operacioneve të kopjimit të memories pa kontroll të kufijve.

Puna vazhdoi për të përfshirë optimizimet në përpilues bazuar në rezultatet e pProfilizimi i kodit PGO, y es que tani përpiluesi përdor mjete devirtualizimi për të zëvendësuar thirrjet indirekte të metodave të ndryshme me ekzekutim të zgjeruar të bllokut inline. Kur PGO u aktivizua, ndryshimi i shtuar përmirësoi performancën e shumicës së programeve me 2% në 14%.

Në versionin e Shkoni për Windows, programe që lidhin ose ngarkojnë bibliotekat Shkoni ndërtuar me -buildmode=c-arkiv o -buildmode=c-shared tani mund të përdorë API-në e Windows Regjistrimi i Ngjarjeve (ETW). përmes paketave të reja koha e ekzekutimit/gjurmë y gjurmues, të cilat zbatojnë protokollin e mbledhjes së gjurmëve të ngjarjeve Go si një ofrues ETW.

Nga ndryshimet e tjera që bien në sy:

  • Komanda shkoj test -mbulesë tani printon përmbledhjet e mbulimit për paketat e mbuluara që nuk kanë skedarët e tyre të testimit.
  • os/exec, është shtuar aftësia për të përcaktuar atributet e kontekstit, duke ju lejuar të vendosni vlera të tilla si drejtoria e punës, variablat e mjedisit dhe përshkruesi i skedarit hyrës/dalës për komandat e ekzekutuara.
  • Menaxhimi i optimizuar i memories në kohën e ekzekutimit, duke rezultuar në një rritje të performancës 1-3% dhe një reduktim 1% të konsumit të memories për shumicën e aplikacioneve.
  • El paquete net/http, funksioni është shtuar CloseIdleConnections te klienti HTTP, i cili mbyll të gjitha lidhjet boshe që klienti ka përdorur së fundi
  • Një zbatim eksperimental i përmirësuar (GOEXPERIMENT=newinliner) i mekanizmit të futjes së thirrjeve është shtuar në përpilues, i cili përdor heuristikat për të ndarë operacionet e rëndësishme nga ato jo të rëndësishme.
  • Paketa është shtuar » matematikë/randë/v2 » në bibliotekën standarde, e cila ofron një API më të qëndrueshme dhe përdor algoritme më të shpejta për të gjeneruar numra pseudorandom.
  • El paquete net/http.ServeMux U shtua aftësia për të specifikuar metoda dhe maska ​​në shabllone.

Së fundi, nëse jeni të interesuar të dinë më shumë për të, ju mund të kontrolloni detajet Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.