የ Go ፕሮግራሚንግ ቋንቋ መለቀቅ 1.18

ጎ 1.18 የፕሮግራሚንግ ቋንቋ መለቀቅ ቀርቧል።ይህም በጎግል በህብረተሰቡ ተሳትፎ የተቀናጁ ቋንቋዎችን ከፍተኛ አፈፃፀም እና ቋንቋዎችን የመፃፍ ጥቅማጥቅሞችን በማጣመር እንደ ድብልቅ መፍትሄ በማዘጋጀት ላይ ይገኛል። ኮድ መጻፍ, ፈጣን እድገት እና የስህተት ጥበቃ. የፕሮጀክት ኮድ በ BSD ፍቃድ ይሰራጫል።

የGo አገባብ በተለመደው የC ቋንቋ አንዳንድ ከፓይዘን ቋንቋ ብድሮች ጋር የተመሰረተ ነው። ቋንቋው በጣም አጭር ነው, ነገር ግን ኮዱ ለማንበብ እና ለመረዳት ቀላል ነው. Go code ቨርቹዋል ማሽን ሳይጠቀም (መገለጫ፣ ማረም እና ሌሎች የሩታይም ችግር ፈላጊ ንዑስ ስርዓቶች እንደ Runtime ክፍሎች የተዋሃዱ) ወደ ሀገርኛ በሚሄዱ ሁለትዮሽ executable ፋይሎች የተጠናቀረ ሲሆን ይህም ከC ፕሮግራሞች ጋር የሚወዳደር አፈጻጸምን ለማስመዝገብ ያስችላል።

ኘሮጀክቱ በመጀመሪያ የተገነባው ባለብዙ-ክር ፕሮግራሚንግ እና በብዝሃ-ኮር ስርዓቶች ላይ ቀልጣፋ አሰራርን በመመልከት ሲሆን ይህም በኦፕሬተር ደረጃ ትይዩ ኮምፒውቲንግን ለማደራጀት እና በትይዩ በተፈጸሙ ዘዴዎች መካከል ያለውን መስተጋብር ጨምሮ ። ቋንቋው የተመደበውን የማህደረ ትውስታ ብሎኮች ከመጠን በላይ እንዳይሞላ አብሮ የተሰራ ጥበቃ እና የቆሻሻ አሰባሳቢውን የመጠቀም ችሎታ ይሰጣል።

አዲሱ ስሪት ለአጠቃላይ ተግባራት እና ዓይነቶች (አጠቃላይ) ድጋፍን ይጨምራል, በእሱ እርዳታ ገንቢ ከበርካታ ዓይነቶች ጋር በአንድ ጊዜ ለመስራት የተነደፉ ተግባራትን ሊገልጽ እና ሊጠቀም ይችላል. እንዲሁም በርካታ የውሂብ አይነቶችን የሚያካትቱ የተጣመሩ ዓይነቶችን ለመፍጠር በይነገጾችን መጠቀም ይቻላል. የጄኔቲክስ ድጋፍ ከነባሩ ኮድ ጋር ወደ ኋላ ተኳሃኝነትን ሳይጥስ ይተገበራል። // ድምር እሴቶችን አዘጋጅቷል፣ ለ int64 ይሰራል እና ለመንሳፈፍ64 አይነቶች func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V { var s V ለ _, v := range m {s += v } return s} // ሌላ አማራጭ የአጠቃላይ ዓይነት ፍቺ ያለው፡ የቁጥር በይነገጽ ይተይቡ { int64 | float64 } func SumNumbers[K ተመጣጣኝ፣ ቪ ቁጥር](m ካርታ[K]V) V {var s V ለ _፣ v := ክልል m {s += v } መመለስ s }

ሌሎች ማሻሻያዎች፡-

  • ለደብዛዛ ኮድ ሙከራ መገልገያዎች በመደበኛው የመሳሪያ ስብስብ ውስጥ ተዋህደዋል። በሚገርም ሙከራ ወቅት የሁሉም ሊሆኑ የሚችሉ የዘፈቀደ የግቤት ውሂብ ጥምረት ዥረት ይፈጠራል እና በሂደታቸው ወቅት ሊከሰቱ የሚችሉ ውድቀቶች ይመዘገባሉ። አንድ ቅደም ተከተል ከተሰናከለ ወይም ከተጠበቀው ምላሽ ጋር የማይዛመድ ከሆነ ይህ ባህሪ ስህተትን ወይም ተጋላጭነትን ሊያመለክት ይችላል።
  • ለብዙ ሞዱላር የስራ ቦታዎች የተጨመረ ድጋፍ, በአንድ ጊዜ ትዕዛዞችን በበርካታ ሞጁሎች ላይ እንዲፈጽሙ ያስችልዎታል, ይህም በአንድ ጊዜ በበርካታ ሞጁሎች ውስጥ ኮድ እንዲገነቡ እና እንዲያሄዱ ያስችልዎታል.
  • በApple M1፣ ARM64 እና PowerPC64 ፕሮሰሰር ላይ ለተመሠረቱ ሥርዓቶች ከፍተኛ የአፈጻጸም ማሻሻያዎች ተደርገዋል። ክርክሮችን ወደ ተግባራት ለማለፍ እና ውጤቱን ለመመለስ ከቁልል ይልቅ መዝገቦችን የመጠቀም ችሎታ ነቅቷል። በአቀነባባሪው የተሻሻለ የሉፕ መስመር መፍታት። በአቀነባባሪው ውስጥ የቼክ አይነት ሙሉ ለሙሉ ተዘጋጅቷል። አንዳንድ ሙከራዎች ከቀዳሚው ልቀት ጋር ሲነጻጸር የ20% የኮድ አፈጻጸምን ያሳያሉ፣ ነገር ግን ማጠናቀር ራሱ 15% ያህል ይረዝማል።
  • በሂደት ጊዜ የነፃ ማህደረ ትውስታን ወደ ኦፕሬቲንግ ሲስተም የመመለስ ቅልጥፍና ጨምሯል እና የቆሻሻ አሰባሳቢው አሠራር ተሻሽሏል, ባህሪው የበለጠ ሊተነበይ የሚችል ነው.
  • አዲስ ፓኬጆች net/netip እና debug/buildinfo ወደ መደበኛው ቤተ-መጽሐፍት ታክለዋል። የTLS 1.0 እና 1.1 ድጋፍ በደንበኛ ኮድ በነባሪነት ተሰናክሏል። የ crypto/x509 ሞጁል SHA-1 ሃሽ በመጠቀም የተፈረሙ የምስክር ወረቀቶችን መስራት አቁሟል።
  • በሊኑክስ ውስጥ ለአካባቢ ጥበቃ የሚያስፈልጉ መስፈርቶች ተነስተዋል፤ ለመስራት አሁን ቢያንስ ስሪት 2.6.32 የሆነ የሊኑክስ ከርነል ሊኖርዎት ይገባል። በሚቀጥለው ልቀት፣ ለFreeBSD ተመሳሳይ ለውጦች ይጠበቃሉ (የFreeBSD 11.x ቅርንጫፍ ድጋፍ ይቋረጣል) እና ቢያንስ FreeBSD 12.2 ለመስራት ይጠየቃል።

ምንጭ: opennet.ru

አስተያየት ያክሉ