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

የቀረበው በ የፕሮግራሚንግ ቋንቋ መለቀቅ ሂድ 1.13ጎግል በማህበረሰቡ ተሳትፎ የተቀነባበሩ ቋንቋዎችን ከፍተኛ አፈፃፀም እና የስክሪፕት አጻጻፍ ጥቅማ ጥቅሞችን በማጣመር በማህበረሰቡ ተሳትፎ እየተዘጋጀ ይገኛል። የፕሮጀክት ኮድ የተሰራጨው በ በ BSD ፍቃድ.

የGo's syntax በC ቋንቋ ከአንዳንድ ከፓይዘን ቋንቋ ብድሮች ጋር በሚታወቁ የC ቋንቋ ክፍሎች ላይ የተመሰረተ ነው። ቋንቋው በጣም አጭር ነው, ነገር ግን ኮዱ ለማንበብ እና ለመረዳት ቀላል ነው. Go code ቨርቹዋል ማሽን ሳይጠቀሙ በአገር ውስጥ በሚሰሩ ብቻቸውን በሚሰሩ ሁለትዮሽ ፈጻሚዎች (መገለጫ፣ ማረም እና ሌሎች የአሂድ ጊዜ ችግር መፈለጊያ ንዑስ ስርዓቶች የተዋሃዱ ናቸው) የአሂድ ክፍሎች), ይህም ከ C ፕሮግራሞች ጋር የሚወዳደር አፈፃፀም እንድታገኙ ያስችልዎታል.

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

ዋና ፈጠራዎችበGo 1.13 ልቀት ውስጥ አስተዋወቀ፡-

  • የ crypto/tls ጥቅል በነባሪ የነቃ የፕሮቶኮል ድጋፍ አለው። የ TLS 1.3. ለ Ed25519 ዲጂታል ፊርማዎች ድጋፍ ያለው አዲስ ጥቅል "crypto/ed25519" ታክሏል;
  • ሁለትዮሽ ቁጥሮችን (ለምሳሌ 0b101)፣ octal (0o377)፣ ምናባዊ (2.71828i) እና ሄክሳዴሲማል ተንሳፋፊ ነጥብ (0x1p-1021) እና የ"_" ቁምፊን አሃዞችን በአይን ለመለየት የመጠቀም ችሎታ ለአዲስ አሃዛዊ ቀጥተኛ ቅድመ ቅጥያዎች ተጨማሪ ድጋፍ። በትልቅ ቁጥሮች (1_000_000);
  • "<<" እና ">>" ኦፕሬተሮች ከመጠቀምዎ በፊት ያልተለመዱ ነገሮችን በሚያንቀሳቅሱ ክዋኔዎች ውስጥ ብቻ የሚጠቀሙበት ገደቦች ተወግ has ል.
  • ለኢሉሞስ መድረክ (GOOS=illumos) ድጋፍ ታክሏል። ከአንድሮይድ 10 የመሳሪያ ስርዓት ጋር ተኳሃኝነት ተረጋግጧል።ለዝቅተኛዎቹ የFreeBSD (11.2) እና ማክኦኤስ (10.11 “El Capitan”) ስሪቶች መስፈርቶች ተጨምረዋል።
  • ለ GOPATH አማራጭ ሆኖ የሚያገለግል የአዲሱ ሞጁል ስርዓት ቀጣይ እድገት። ከዚህ ቀደም በGo 1.13 ላይ ከታወጁት እቅዶች በተቃራኒ ይህ ስርዓት በነባሪነት አልነቃም እና በተለዋዋጭ GO111MODULE= ላይ ማግበር ወይም ሞጁሎች በራስ-ሰር የሚተገበሩበትን አውድ መጠቀምን ይጠይቃል። አዲሱ ሞጁል ሲስተም የተቀናጀ የስሪት ድጋፍ፣ የጥቅል አቅርቦት አቅም እና የተሻሻለ የጥገኝነት አስተዳደርን ያሳያል። በሞጁሎች አማካኝነት ገንቢዎች በGOPATH ዛፍ ውስጥ ከመስራት ጋር የተሳሰሩ አይደሉም፣ የተሻሻሉ ጥገኞችን በግልፅ መግለፅ እና ሊደገሙ የሚችሉ ግንባታዎችን መፍጠር ይችላሉ።

    ካለፉት ልቀቶች በተለየ የአዲሱ ስርዓት አውቶማቲክ መተግበሪያ አሁን የሚሰራው go.mod ፋይል አሁን ባለው የስራ ማውጫ ውስጥ ወይም የወላጅ ዳይሬክተሩን በሚያሄድበት ጊዜ፣ በGOPATH/src ማውጫ ውስጥ ያለውንም ጨምሮ። አዲስ የአካባቢ ተለዋዋጮች ተጨምረዋል፡ GOPRIVATE፣ ለወል ተደራሽ የሆኑ ሞጁሎች መንገዶችን የሚገልጽ እና GOSUMDB፣ በ go.sum ፋይል ውስጥ ላልተዘረዘሩ ሞጁሎች የቼክሰም ዳታቤዝ መዳረሻ መለኪያዎችን የሚገልጽ።

  • የ"ሂድ" ትዕዛዙ በነባሪ ሞጁሎችን ይጭናል እና በጎግል (proxy.golang.org፣ sum.golang.org እና index.golang.org) የተያዙትን የሞጁል መስታወት እና የቼክሰም ዳታቤዝ በመጠቀም ታማኝነታቸውን ያረጋግጣል።
  • የሁለትዮሽ ፓኬጆች ብቻ ድጋፍ ተቋርጧል፤ በ"//go: binary-only-package" ሁነታ ላይ ጥቅል መገንባት አሁን ስህተትን ያስከትላል።
  • ለ"@patch" ቅጥያ ወደ "go get" ትእዛዝ ታክሏል፣ ይህም ሞጁሉ ወደ የቅርብ ጊዜው የጥገና ልቀት መዘመን እንዳለበት የሚያመለክት፣ ነገር ግን የአሁኑን ዋና ወይም ትንሽ ስሪት ሳይቀይር፣
  • ሞጁሎችን ከምንጩ ቁጥጥር ስርዓቶች ሰርስሮ ሲያወጣ የ"ሂድ" ትዕዛዙ አሁን በስሪት ህብረቁምፊው ላይ ተጨማሪ ፍተሻ ያከናውናል፣ የውሸት ስሪት ቁጥሮች ከማጠራቀሚያው ሜታዳታ ጋር ለማዛመድ ይሞክራል።
  • ድጋፍ ታክሏል። የስህተት ምርመራ (ስህተት መጠቅለል) መደበኛ የስህተት ተቆጣጣሪዎችን መጠቀምን የሚፈቅዱ ማሸጊያዎችን በመፍጠር. ለምሳሌ, ስህተት "e" ዘዴን በማቅረብ በስህተት "w" ዙሪያ መጠቅለል ይቻላል ይክፈቱ"ወ" በመመለስ ላይ። ሁለቱም ስህተቶች "e" እና "w" በፕሮግራሙ ውስጥ ይገኛሉ እና ውሳኔዎች የሚተላለፉት በ"w" ስህተት ላይ ነው, ነገር ግን "ሠ" ለ "w" ተጨማሪ አውድ ያቀርባል ወይም በተለየ መንገድ ይተረጉመዋል;
  • የአሂድ ክፍሎች አፈፃፀም ተሻሽሏል (እስከ 30% የሚደርስ የፍጥነት መጨመር ተስተውሏል) እና የበለጠ ኃይለኛ የማስታወስ ችሎታ ወደ ስርዓተ ክወናው መመለስ ተተግብሯል (ቀደም ሲል ፣ ማህደረ ትውስታ ከአምስት ወይም ከዚያ በላይ ደቂቃዎች በኋላ ተመልሶ ነበር ፣ ግን አሁን ወዲያውኑ የክብደቱን መጠን ከቀነሱ በኋላ).

ምንጭ: opennet.ru

አስተያየት ያክሉ