ሂድ የፕሮግራም አወጣጥ ቋንቋ 1.16

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

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

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

በGo 1.16 ውስጥ የገቡ ቁልፍ አዳዲስ ባህሪያት፡-

  • የዘፈቀደ ፋይሎችን እና ማውጫዎችን ወደ ፕሮግራሙ ለመክተት የሚረዱ መሳሪያዎችን የሚያቀርበውን የተከተተ ጥቅል ታክሏል። አዲስ የ"//go:embed" መመሪያ ቀርቧል ፋይሎችን በማጠናቀር ጊዜ የሚከተቱትን የሚገልጽ። ለምሳሌ በኮዱ አስተያየት ውስጥ "//go: embed test.txt" በመጥቀስ እና ተለዋዋጭውን "var f embed.FS" ማወጅ የ test.txt ፋይልን ወደ መክተት እና በ" በኩል የማግኘት ችሎታን ያመጣል. ረ” ገላጭ በተመሳሳይ መልኩ ፋይሎችን ከሀብቶች ወይም ከግል እሴቶች ጋር መክተት ይችላሉ። ” //go:embed version.txt var s string print (ዎች)
  • በነባሪ፣ በGOPATH ላይ የተመሰረተ የጥገኝነት አስተዳደርን በመተካት የተቀናጀ የስሪት ድጋፍ ያለው አዲሱ ሞጁል ሲስተም አሁን ያስፈልጋል። የGO111MODULE አካባቢ ተለዋዋጭ አሁን በነባሪነት ወደ "በርቷል" ተቀናብሯል እና የሞዱሎች ሁነታ በስራ ወይም በወላጅ ማውጫ ውስጥ የgo.mod ፋይል ቢኖርም ጥቅም ላይ ይውላል። በአዲሱ ሁነታ እንደ "go build" እና "go test" ያሉ ትዕዛዞችን ይገንቡ የ go.mod እና go.sum ይዘቶችን አይቀይሩም እና "go install" ትዕዛዝ የስሪት ግቤቶችን ("go install example.com/) አይለውጡም።[ኢሜል የተጠበቀ]") የድሮውን ባህሪ ለመመለስ GO111MODULEን ወደ "ራስ-ሰር" ይለውጡ። 96% የሚሆኑት ገንቢዎች ወደ አዲሱ ሞጁል ስርዓት መሸጋገራቸውን ተጠቁሟል።
  • ማገናኛው ተመቻችቷል። ለትላልቅ ፕሮጀክቶች አቀማመጥ አሁን ከ20-25% ፈጣን ነው እና ከ5-15% ያነሰ ማህደረ ትውስታን ይፈልጋል።
  • አቀናባሪው በመስመር ውስጥ ተግባራትን ለማስፋፋት ድጋፍን አክሏል ለ "ለ" loops ፣ ዘዴ እሴቶች እና የ'አይነት ማብሪያ' ግንባታዎች።
  • በአዲሱ የ Apple M1 ARM ቺፕ ለተገጠመላቸው የአፕል ስርዓቶች ተጨማሪ ድጋፍ። የተጨመሩ netbsd/arm64 እና openbsd/mips64 ports with NetBSD በ64-ቢት ARM እና OpenBSD በ MIPS64 ስርዓቶች። ለ cgo እና ለ "-buildmode=pie" ሁነታ ወደ linux/riscv64 ወደብ ድጋፍ ታክሏል።
  • ለ x87 ማጠናቀር ሁነታ ድጋፍ ተቋርጧል (GO386=387)። ለ SSE2 መመሪያ አልባ ፕሮሰሰሮች ድጋፍ አሁን በ"GO386=softfloat" ሶፍትዌር ሁነታ ይገኛል።

በተጨማሪም፣ የ Dart 2.12 ቋንቋ የቅድመ-ይሁንታ መለቀቅ መጀመሩን ልብ ልንል እንችላለን፣ በዚህ ጊዜ “Null” እሴት (ኑል ሴፍቲ) ለመጠቀም ደህንነቱ የተጠበቀ ሁነታ የተረጋጋ ሲሆን ይህም ተለዋዋጮችን ለመጠቀም በሚደረገው ሙከራ ምክንያት የሚመጡ ብልሽቶችን ለማስወገድ ይረዳል። እሴቱ አልተገለጸም እና ወደ "Null" ተቀናብሯል። ሁነታው የሚያመለክተው ተለዋዋጮች ዋጋ ቢስ በሆነ መልኩ ካልተመደቡ በስተቀር ባዶ ​​እሴቶች ሊኖራቸው እንደማይችል ነው። ሁነታው ተለዋዋጭ ዓይነቶችን በጥብቅ ያከብራል, ይህም ማጠናከሪያው ተጨማሪ ማመቻቸትን እንዲጠቀም ያስችለዋል. የመተዳደሪያ ደንብ በተጠናቀረበት ጊዜ ላይ ምልክት ይደረግበታል፡ ለምሳሌ፡- “Null” የሚለውን እሴት ለተለዋዋጭ እንደ “int” የማይገልጽ ዓይነት ለመመደብ ከሞከሩ ስህተት ይታያል።

ምንጭ: opennet.ru

አስተያየት ያክሉ