I-Go 1.22 isivele ikhishiwe, funda ngezici zayo ezintsha nentuthuko

IGoland

I-Go iwulimi lokuhlela oluhlangene, oluhlanganisiwe olunokuthayipha okumile okugqugquzelwe i-syntax C.

Inguqulo entsha ye- Go 1.22 ifika ezinyangeni eziyisithupha ngemva kwenguqulo 1.21, inezinguquko eziningi eziphawulekayo kusethi yamathuluzi, isikhathi sokusebenza, ukuthuthukiswa kokwenza ngcono, ukuthuthukiswa kwe-compiler, kanye nemitapo yolwazi.

Kulabo abangajwayelene ne-Go, kufanele ngikhulume ukuthi lulimi lokuhlela oluthuthukiswa yi-Google kanye nokubamba iqhaza komphakathi njengesixazululo esihlanganisiwe esihlanganisa ukusebenza okuphezulu kwezilimi ezihlanganisiwe nezinzuzo ezifana nezilimi zokubhala, njengokulula kokubhala ikhodi, isivinini sokuthuthukiswa, kanye nokuvikelwa kwamaphutha.

Izici ezintsha eziyinhloko zeGo Go 1.22

Kule nguqulo entsha, eyethulwe kusukela ku-Go 1.22, izinguquko ezimbili ku-"for" loops ziyavela . Ngaphambilini, iziguquguquko ezimenyezelwe yi-"for" loop zadalwa kanye futhi zabuyekezwa ku-iteration ngayinye. Ku-Go 1.22, i-iteration ngayinye ye-loop idala iziguquguquko ezintsha ukuvimbela amaphutha okwabelana ngengozi. Ngaphezu kwalokho , ukwesekwa kokuhlola (GOEXPERIMENT=rangefunc) kwemisebenzi yobubanzi ku-"for" loops kwenezelwe, okuvumela umsebenzi ukuthi ucaciswe njenge-iterator. Inkinga yesikhathi eside ngama-"for" loops ebangele izingcingo ze-coroutine zokwabelana ngeziguquguquko ze-loop phakathi kwe-iteration nayo yaxazululwa . Ngaphezu kwalokho, ama-"for" loops manje angaphindaphinda ngaphezu kwezinombolo eziphelele. Isibonelo:

ukungenisa kwephakheji okuyinhloko "fmt" func main() { for i := range 10 { fmt.Println(10 - i) } fmt.Println("go1.22 iyasuka!")}

Olunye ushintsho oluphawulekayo kule nguqulo entsha ukwethulwa kwekhono lokusebenzisa isiqondisi " somthengisi " esiqukethe ukuncika kwendawo yokusebenza. Imiyalo manje ingasebenzisa lesi siqondisi, esidalwe nge-'go work vendor' futhi sisetshenziswa emiyalweni yokwakha lapho i-'-mod' isethwe ku-" vendor ," okuyi-default lapho isiqondisi " somthengisi " sikhona endaweni yokusebenza.

Kubalulekile ukuqaphela ukuthi ukusebenza kwe- ` go get` akusasekelwa ngaphandle kwemojuli kumodi ye -GOPATH yakudala . Kodwa-ke, eminye imiyalo yokwakha efana ne -` go build` kanye ne-` go test` izoqhubeka isebenza unomphela ezinhlelweni ze-GOPATH zakudala. Ngaphezu kwalokho, umyalo we -` go mod init` ngeke usazama ukungenisa izidingo zemojuli kusuka kumafayela okucushwa kwamanye amathuluzi omthengisi (njenge-Gopkg.lock).

I-Go 1.22 yethula iphakheji entsha ye-io/unsafe enikeza ukusebenza kokusebenza ngama-pointers kanye ne-safety memory . Le phakheji inikeza izindlela zokuguqula ama-pointers kusuka ezinhlotsheni eziphephile kuya kwezingaphephile, kanye nokwenza imisebenzi yokukopisha imemori ngaphandle kokuhlola imingcele.

Umsebenzi uqhubekile wokufaka ukulungiswa kwe-compiler ngokusekelwe emiphumeleni ye -PGO code profile. I-compiler manje isebenzisa amathuluzi okususa i-virtualization ukuze ithathe indawo yezingcingo ezingaqondile ezivela ezindleleni ezahlukene ngokusebenzisa amabhlogo anwetshiwe angaphakathi. Lapho i-PGO ivuliwe, lolu shintsho lwathuthukisa ukusebenza kwezinhlelo eziningi phakathi kuka-2% no-14%.

Ku- Windows version ye-Go, izinhlelo ezixhumanisa noma ezilayisha amalabhulali e-Go akhiwe nge --buildmode=c-archive noma i --buildmode=c-shared manje zingasebenzisa i-Windows Event Logging (ETW) API ngokusebenzisa amaphakheji amasha e-runtime/trace kanye ne -tracehook , asebenzisa iphrothokholi yokuqoqwa kwe-Go event trace njengomhlinzeki we-ETW.

Kwezinye izinguquko ezigqamile:

  • Umyalo hamba test -cover manje iphrinta izifinyezo zokufakwa kwamaphakheji ahlanganisiwe angenawo amafayela awo okuhlola.
  • os/eqe, ikhono lokuchaza izibaluli zomongo lengeziwe, okukuvumela ukuthi usethe amanani anjengohla lwemibhalo olusebenzayo, okuguquguqukayo kwemvelo, kanye nesichazi sefayela lokufaka/lokukhiphayo lemiyalo ekhishiwe.
  • Ukuphathwa kwememori okulungiselelwe ngesikhathi sokusebenza, okuholela ekwenyukeni kokusebenza okungu-1-3% kanye nokwehliswa okungu-1% kokusetshenziswa kwenkumbulo ezinhlelweni eziningi.
  • Iphakheji inetha/http, umsebenzi wengeziwe CloseIdleConnections kuklayenti le-HTTP, elivala konke ukuxhumana okungenzi lutho iklayenti elisanda kulisebenzisa
  • Ukuqaliswa kokuhlolwa okuthuthukisiwe (GOEXPERIMENT=newinliner) kwendlela yokufaka ikholi yengezwe kumdidiyeli, okusebenzisa i-heuristics ukuze kuhlukaniswe imisebenzi ebalulekile kunengabalulekile.
  • Iphakheji yengeziwe » izibalo/irandi/v2 »kumtapo wolwazi ojwayelekile, ohlinzeka nge-API engaguquguquki futhi esebenzisa ama-algorithms asheshayo ukwenza izinombolo zomgunyathi.
  • Iphakheji net/http.ServeMux Kwengezwe ikhono lokucacisa izindlela namamaski kuzifanekiso.

Okokugcina, uma unesithakazelo sokufunda okwengeziwe, ungathola imininingwane kusixhumanisi esilandelayo.


Engeza njengomthombo okhethwayo ku-Google