ከስድስት ወራት እድገት በኋላ ጎ 1.23 የፕሮግራም አወጣጥ ቋንቋ ተለቀቀ ፣ በጎግል በህብረተሰቡ ተሳትፎ እንደ ዲቃላ መፍትሄ በመዘጋጀት የተቀናጁ ቋንቋዎችን ከፍተኛ አፈፃፀም እና የስክሪፕት ቋንቋዎችን ጥቅሞች በማጣመር እየተዘጋጀ ነው ። ኮድን የመጻፍ ቀላልነት, የእድገት ፍጥነት እና ከስህተቶች ደህንነት. የፕሮጀክት ኮድ በ BSD ፍቃድ ይሰራጫል።
የGo አገባብ በC ቋንቋ ከአንዳንድ ከኦቤሮን ቋንቋ ብድሮች ጋር በሚታወቁ የC ቋንቋ ክፍሎች ላይ የተመሠረተ ነው። ቋንቋው በጣም አጭር ነው, ነገር ግን ኮዱ ለማንበብ እና ለመረዳት ቀላል ነው. Go code ቨርቹዋል ማሽን ሳይጠቀም (መገለጫ፣ ማረም ሞጁሎች እና ሌሎች የአሂድ ጊዜ ችግር ፈላጊ ንዑስ ስርዓቶች እንደ Runtime ክፍሎች ተዋህደዋል) ቤተኛ ወደሚሰሩ ሁለትዮሽ ሊተገበሩ የሚችሉ ፋይሎች ተሰብስቧል፣ ይህም ከ C ፕሮግራሞች ጋር የሚወዳደር አፈጻጸም እንዲኖር ያስችላል።
ኘሮጀክቱ በመጀመሪያ የተገነባው ባለብዙ-ክር ፕሮግራሚንግ እና በብዝሃ-ኮር ስርዓቶች ላይ ቀልጣፋ አሰራርን በመመልከት ሲሆን ይህም በኦፕሬተር ደረጃ ትይዩ ኮምፒውቲንግን ለማደራጀት እና በትይዩ በተፈጸሙ ዘዴዎች መካከል ያለውን መስተጋብር ጨምሮ ። ቋንቋው የተመደበውን የማህደረ ትውስታ ብሎኮች ከመጠን በላይ እንዳይሞላ አብሮ የተሰራ ጥበቃ እና የቆሻሻ አሰባሳቢውን የመጠቀም ችሎታ ይሰጣል።
በአዲሱ ልቀት ላይ የተደረጉ ለውጦች የሚከተሉትን ያካትታሉ፡-
- በ"ለ" loops ውስጥ የእሴቶችን ክልል ሲገልጹ፣ ይህንን ተግባር እንደ ተደጋጋሚነት ለመጠቀም ለ "ክልል" አገላለጽ እንደ ሙግት መግለጽ ተችሏል፣ ይህም ለማንኛውም ተከታታይ የእራስዎን ተደጋጋሚዎች እንዲፈጥሩ ያስችልዎታል። የሚከተሉትን ዓይነቶች ተግባራትን መግለጽ ይቻላል-func (func () bool), func (func (K) bool) እና func (func (K, V) bool). ተከታታይ ድግግሞሾችን ለማደራጀት መሰረታዊ ስራዎችን የሚሰጥ አዲስ ኢተር ጥቅል ተጨምሯል። በተጨማሪም, ከድግግሞሾች ጋር ለመስራት አዳዲስ ባህሪያት ወደ ቁርጥራጭ እና የካርታ ፓኬጆች ተጨምረዋል. ለምሳሌ የአሶሺዬቲቭ ድርድር ቁልፎችን በተደረደረ መልኩ ለመድገም አሁን “ለ i፣ x := ክልል ቁርጥራጭ። የተደረደሩ(maps. Keys(m)) {…}” መግለጽ ይችላሉ።
- የቅድሚያ ድጋፍ ታክሏል (በGOEXPERIMENT=aliastypeparams በኩል የነቃ) የየራሳቸውን መመዘኛዎች በጠቅላላ ተግባራት ውስጥ ዓይነት ተለዋጭ ስሞችን ለመጠቀም በአንድ ጊዜ ከበርካታ ዓይነቶች ጋር ለመስራት ተግባራትን መፍጠር ይችላሉ።
- የመሳሪያ ኪትሱ ቴሌሜትሪን ለመላክ አብሮ የተሰራ ችሎታ አለው አገልጋይ ቴሌሜትሪ.ጎ.ዴቭ። ቴሌሜትሪ በአካባቢያዊ ኦዲት በሚደረጉ ፋይሎች ውስጥ የሚከማች ሲሆን በመሳሪያ ኪት አጠቃቀም ላይ ያለውን መረጃ ብቻ ይሸፍናል (ቴሌሜትሪ በመሳሪያ ኪት በመጠቀም በተሰበሰቡ የተጠቃሚ መተግበሪያዎች ላይ አይታከልም)። በነባሪነት ቴሌሜትሪ ወደ ውጫዊ አገልጋይ መላክ ተሰናክሏል (መርጠው ይግቡ) እና አዲሱን "ሂድ ቴሌሜትሪ በርቷል" ትዕዛዝ በመጠቀም መንቃት አለበት። ቴሌሜትሪ መላክ ያልተለመዱ ባህሪያትን እና ያልተለመዱ ባህሪያትን ለመለየት፣ ከመሳሪያ ኪት ጋር የገንቢዎችን መስተጋብር ለመገምገም እና የትኞቹ ባህሪያት በጣም ተፈላጊ እንደሆኑ እና የትኞቹ እምብዛም ጥቅም ላይ እንደማይውሉ ለመረዳት ይረዳል። የተከማቹት ስታቲስቲክስ የመሳሪያ ኪት ዘመናዊነትን እንደሚያስችል ይጠበቃል፣ ይህም ውጤታማነቱን እና የአጠቃቀም ቀላልነቱን ያሻሽላል።

- እሴቶቻቸው ከነባሪው እሴቶች የሚለያዩትን ቅንብሮችን ብቻ ለማሳየት የ"go env-changed" ትዕዛዝ ታክሏል።
- በፋይሎች ላይ ለውጥ ከማድረግ ይልቅ ለውጦቹን በ patch መልክ በዲፍ ፎርማት ለማውጣት የሚያስችል የ"go mod tidy -diff" ትዕዛዝ ታክሏል።
- በተመረጠው የGo ስሪት ውስጥ ጥቅም ላይ መዋል የማይችሉትን በጣም አዲስ ንጥሎችን በማሳየት የ "go vet" ትዕዛዝ ላይ የስሪት ተንታኝ ታክሏል። ለምሳሌ፣ ተንታኙ አንጸባራቂውን ስለመጠቀም ማስጠንቀቂያ ይሰጣል።TypeFor function በስሪት 1.22 ውስጥ የገባው ለሥሪት 1.21 ድጋፍ በሚሰጠው ሞጁል ውስጥ ለመጠቀም ሲሞክር ነው።
- የሰዓቱ አተገባበር. የሰዓት ቆጣሪ እና ጊዜ. የቲከር ዓይነቶች ተሻሽለዋል, ከማቆያ እና ከቆሻሻ አሰባሰብ ማመቻቸት ጋር በተያያዙ ለውጦች.
- የመዋቅር ባህሪያትን ለመለወጥ ዓይነቶችን የሚገልጽ የመዋቅር ጥቅል ታክሏል።
- ተነጻጻሪ እሴቶች ቀኖናዊ ለማድረግ ተግባራት ጋር ልዩ ጥቅል ታክሏል.
- ማረም ለመቆጣጠር ለ godebug መመሪያ ወደ go.mod እና go.work ፋይሎች ታክሏል።
- በ64-ቢት የRISC-V ስርዓቶች (openbsd/riscv64) ላይ ለ OpenBSD የሙከራ ድጋፍ ታክሏል። የተሻሻለ ድጋፍ Linux, macOS, ARM64፣ RISC-V እና WASI።
- PGO (በመገለጫ የሚመራ ማሻሻያ) በፕሮግራም አፈጻጸም ወቅት የሚወሰኑትን ባህሪያት ግምት ውስጥ ማስገባት ሲችል በ i386 እና amd64 አርክቴክቸር ላይ ያለው አፈጻጸም ተሻሽሏል።
ምንጭ: opennet.ru

