Go programming language 1.18 sii deynta

Siideynta luuqadda barnaamijka Go 1.18 ayaa la soo bandhigay, kaas oo ay soo saartay Google iyada oo ka qaybqaadashada bulshadu ay tahay xal isku dhafan oo isku daraya waxqabadka sare ee luqadaha la soo ururiyey iyo faa'iidooyinka sida luqadaha qorista sida fududaanta koodka qorista , xawaaraha horumarka, iyo ilaalinta khaladaadka. Xeerka mashruuca waxa lagu qaybiyaa shatiga BSD.

Go's syntax waxay ku salaysan tahay walxaha la yaqaan ee luqadda C oo leh xoogaa amaah ah oo laga soo qaatay luqadda Python. Luqadda waa mid kooban, laakiin koodka waa sahlan tahay in la akhriyo lana fahmo. Go code waxaa lagu soo ururiyay faylal la fulin karo oo kali ah oo si toos ah u shaqeeya iyada oo aan la isticmaalin mashiinka farsamada (profiling, modules debugging, iyo nidaamyada kale ee ogaanshaha dhibka runtime waxay isku dhafan yihiin qaybaha runtime), taas oo u oggolaanaysa waxqabadka u dhigma barnaamijyada C.

Mashruucu waxaa markii hore lagu hormariyay iyadoo isha lagu hayo barnaamijyo isku xiran iyo hawlgal hufan oo lagu sameeyo nidaamyada asaasiga ah, oo ay ku jiraan bixinta habab laga hirgeliyay heerka hawlwadeenka ee abaabulka xisaabinta barbar-dhigga iyo isdhexgalka ka dhexeeya hababka barbar socda. Luqadda ayaa sidoo kale bixisa ka-hortag dhismeed ka dhan ah xad-dhaafka ah ee blocks xusuusta loo qoondeeyey oo waxay siisaa awoodda isticmaalka ururiyaha qashinka.

Nooca cusubi wuxuu ku darayaa taageerada hawlaha guud iyo noocyada (generics), iyadoo la kaashanayo horumariye uu qeexi karo oo isticmaali karo hawlo loogu talagalay inuu la shaqeeyo dhowr nooc hal mar. Waxa kale oo suurtogal ah in la isticmaalo interfaces si loo abuuro noocyo isku dhafan kuwaas oo ka kooban noocyo badan oo xog ah. Taageerada generics waa la hirgeliyaa iyada oo aan la jebin dib u waafaqsanaanta koodka jira. // Wadarta qiimayaasha, waxay u shaqeysaa int64 iyo float64 func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V {var s V for _, v := range m { s += v } celinta s } // Doorasho kale oo leh qeexitaan nooca guud: nooca Nambar interface { int64 | float64} func SumNumbers[K la barbardhigi karo, V Number](m khariidad[K]V) V {var s V ee _, v := kala duwan m {s += v} celinta s}

Horumarin kale:

  • Utilities ee imtixaan kood fuzzing ah ayaa lagu dhex daray qalabka caadiga ah. Inta lagu jiro tijaabada jahawareerka, qulqulka dhammaan isku darka aan tooska ahayn ee suurtogalka ah ee xogta gelinta ayaa la abuuraa waxaana la diiwaangeliyaa guuldarrooyinka suurtagalka ah inta lagu jiro habayntooda. Haddii isku xigxiga uu shil galo ama uusan ku habboonayn jawaabta la filayo, markaa habdhaqankan ayaa aad ugu dhow inuu muujiyo kutaan ama nuglaanta.
  • Taageero dheeri ah oo loogu talagalay goobo shaqo oo badan oo modular ah, oo kuu oggolaanaya inaad ku fuliso amarada qaybo badan hal mar, taasoo kuu ogolaanaysa inaad isku mar dhisto oo aad furto koodka qaybo badan.
  • Hagaajinta waxqabadka muhiimka ah ayaa loo sameeyay nidaamyada ku salaysan Apple M1, ARM64 iyo PowerPC64 soo-saareyaal. Awood u leh in loo isticmaalo diiwaan-gelinta halkii laga isticmaali lahaa isku-xidhka si loogu gudbiyo doodaha shaqada oo loo soo celiyo natiijada. Soo-dejinta khadka dhexda ee siddo-koobiyaha oo la hagaajiyay. Nooca hubinta ee isku xidhaha ayaa gabi ahaanba dib loo habeeyey. Tijaabooyinka qaarkood waxay muujinayaan korodhka 20% ee waxqabadka koodhka marka la barbar dhigo sii dayntii hore, laakiin isu-ururinta lafteedu waxay qaadataa ilaa 15% ka dheer.
  • Waqtiga runtime, waxtarka dib ugu soo celinta xusuusta xorta ah ee nidaamka hawlgalka waa la kordhiyey waxaana la wanaajiyey shaqada qashinka ururinta, taas oo habdhaqankeedu noqday mid la sii saadaalin karo.
  • Baakado cusub net/netip iyo debug/buildinfo ayaa lagu daray maktabadda caadiga ah. Taageerada TLS 1.0 iyo 1.1 waa naafo sida caadiga ah ee koodka macmiilka. Module-ka crypto/x509 ayaa joojiyay ka shaqaynta shahaadooyinka la saxeexay iyadoo la isticmaalayo SHA-1 hash.
  • Shuruudaha deegaanka ee Linux ayaa sare loo qaaday; si aad u shaqeyso, hadda waxaad u baahan tahay inaad haysato kernel Linux ah ugu yaraan nooca 2.6.32. Siideynta soo socota, isbedelada la midka ah ayaa laga filayaa FreeBSD (taageerada FreeBSD 11.x laanta waa la joojin doonaa) iyo ugu yaraan FreeBSD 12.2 ayaa looga baahan doonaa inay shaqeyso.

Source: opennet.ru

Add a comment