I-Go iwulimi lokuhlela oluhlangene, oluhlanganisiwe olunokuthayipha okumile okugqugquzelwe i-syntax C.
I ukukhishwa kwenguqulo entsha yolimi lokuhlela i-Go 1.20, ethuthukiswa i-Google ngokubamba iqhaza komphakathi njengesixazululo esiyingxube esihlanganisa ukusebenza okuphezulu kwezilimi ezihlanganisiwe.
Uhlelo olusha lwe-Go 1.20 bahlomule esigabeni sentuthuko esengeziwe, okwenziwe kwaba nokwenzeka ngokuhlolwa okubanzi okungaphezulu kanye nokuzinza kwe-codebase okuthuthukisiwe.
Kuyafaneleka ukubalula ukuthi iphrojekthi iqale ithuthukiswe ngeso elibheke ekuhleleni okunemicu eminingi kanye nokusebenza okuphumelelayo kumasistimu we-multicore, okuhlanganisa ukuhlinzekwa kwezindlela ezisetshenziswa inkampani yenethiwekhi ukuhlela ukusebenzisana kwekhompuyutha kanye nokusebenzisana phakathi kwezindlela ezenziwa ngokuhambisana. Ulimi luphinde lunikeze isivikelo esakhelwe ngaphakathi ngokumelene nokuchichima kwebhulokhi yememori eyabelwe futhi inikeza ikhono lokusebenzisa umqoqi wezibi.
I-syntax ye-Go isekelwe kuzinto ezijwayelekile zolimi C ngokuboleka okuthile kulimi lwe-Oberon. Ulimi lumfushane impela, kodwa ikhodi ifundeka kalula futhi iyiqonde.
Izici ezintsha eziyinhloko zeGo Go 1.20
Kule nguqulo entsha ye-Go 1.20 eyethulwa, kugqanyiswe ukuthi ihlinzekileo Ukusekelwa kokuhlolwa kokwenza kahle okuqondiswa yiphrofayela (PGO), ecabangela izici ezinqunywe ngesikhathi sokusebenza. Uma kucatshangelwa iphrofayili yokubulawa ngesikhathi somhlangano, ukusebenza kwezinhlelo zokusebenza kungathuthukiswa ngo-3-4%. Kwengezwe inketho ethi "-pgo" yokufaka i-PGO ku-go build, hamba faka neminye imiyalo yokwakha.
Okunye okusha okuvezwayo yilokho yengeze imisebenzi ye-SliceData, String kanye ne-StringData kuphakheji engaphephile yokukhohlisa kwezinga eliphansi ngamasegimenti (amalungu afanayo alingana ngokushintshashintshayo) kanye neyunithi yezinhlamvu (isibonelo, ukuguqula indawo yememori ekhonjwe ngesikhombisi ibe yiyunithi yezinhlamvu yohlobo lweyunithi yezinhlamvu nokunye okuphambene).
Ngaphezu kwalokhu, kuphinde kugqanyiswe ukuthi ikhava, isinwetshiwe nekhono lokuqoqa amaphrofayili ezinhlelo ngokujwayelekile futhi hhayi nje ukuhlola amayunithi kuphela, inketho ethi "-cover" iphinde yengezwa ukuze kuhlanganiswe, ukufaka neminye imiyalo. ukwakha ukukhiqiza iphrofayili yokumboza.
Okusetshenziswayo go ikhishwa ekubopheni ukuya kumaphakheji welabhulali ajwayelekile ahlanganiswe ngaphambilini etholakala kuhla lwemibhalo lwe-$GOROOT/pkg, okwenze kwaba nokwenzeka ukuwakhipha ekusabalaliseni futhi kuzuzwe ukuncipha kosayizi wedatha elandiwe. Amaphakheji omtapo wolwazi ajwayelekile, njengamaphakheji avamile, manje akhiwe njengoba kudingeka futhi agcinwe kunqolobane yokwakha.
Umyalo go ikhubaza ukusetshenziswa kwephakheji ye-cgo ngokuzenzakalelayo kumasistimu angenayo isethi yamathuluzi okuhlanganiswa kwekhodi C. Lezi zinhlelo manje zisebenzisa okuhlukile kwamaphakheji ajwayelekile welabhulali ngolimi lwesi-Go, kunokusebenzisa amaphakheji ahlanganiswe ngaphambili.
Of ezinye izinguquko ezigqamile yenguqulo entsha:
- Usizo lwezilwane lunezixwayiso ezengeziwe mayelana nezinkinga eziguquguqukayo ezisetshenziswa kumaluphu atholwa lapho ukuhlola kwenziwa ngokuhambisana.
- Imithetho yokuguqulwa kohlobo inwetshwa kanye nethuba lokuguqulwa okuqondile ukusuka kungxenye ukuya kumalungu afanayo.
- Ukucaciswa kuchaza ngokusobala uhlelo lapho izakhi zamalungu afanayo nezinkambu zesakhiwo ziqhathaniswa khona.
- Iphakheji ye-crypto/ecdh yengezwe kumtapo wolwazi ojwayelekile ngokusekelwa kwe-ECDH (Elliptic Curve Diffie-Hellmann) ukushintshanisa kokhiye.
- Kwengezwe uhlobo olusha lwe-http.ResponseController ukuze udale izilawuli zokuphendula ezicebile ze-HTTP.
- Kwengezwe umsebenzi wokuBhala kabusha ohlotsheni lwe-httputil.ReverseProxy ukuze ulungise isicelo.
- Kwengezwe umongo.WithCancelCause umsebenzi, okuvumela ukuthi ukhansele ikholi ngephutha elicacisiwe.
- Izinkambu zokukhansela kanye ne-WaitDelay zengezwe ohlotsheni lwe-os/exec.Cmd ukuze ucacise ukuziphatha lapho umongo ukhanselwa noma inqubo inqanyulwa.
- Ku-compiler kanye nokuqoqwa kwememori ukusetshenziswa kwememori kuncishisiwe futhi ukusebenza kuye kwathuthukiswa (ukwanda kwesivinini kufinyelela ku-2%).
- Umsebenzi wenziwe ukusheshisa ukuhlanganiswa: ukuncishiswa kwesikhathi sokuhlanganisa kungaba ngama-10%.
- Kwengezwe usekelo lokuhlola lwengxenyekazi ye-FreeBSD kumasistimu ane-RISC-V architecture (GOOS=freebsd, GOARCH=riscv64).
Okokugcina Uma unesifiso sokwazi okwengeziwe ngakho, ungabheka imininingwane Kulesi sixhumanisi esilandelayo.