Go ක්‍රමලේඛන භාෂාව නිකුත් කිරීම 1.16

Go 1.16 ක්‍රමලේඛන භාෂාව නිකුතුව ඉදිරිපත් කර ඇති අතර, එය Google විසින් ප්‍රජාවගේ සහභාගීත්වයෙන් සංවර්ධනය කරන ලද දෙමුහුන් විසඳුමක් ලෙස සම්පාදනය කරන ලද භාෂාවල ඉහළ කාර්ය සාධනය සහ කේත ලිවීමේ පහසුව ලෙස භාෂා ස්ක්‍රිප්ට් කිරීමේ වාසි සමඟ ඒකාබද්ධ කරයි. , සංවර්ධනයේ වේගය සහ දෝෂ ආරක්ෂා කිරීම. ව්යාපෘති කේතය BSD බලපත්රය යටතේ බෙදා හරිනු ලැබේ.

Go හි වාක්‍ය ඛණ්ඩය පදනම් වී ඇත්තේ පයිතන් භාෂාවෙන් සමහර ණය ගැනීම් සමඟ C භාෂාවේ හුරුපුරුදු මූලද්‍රව්‍ය මත ය. භාෂාව තරමක් සංක්ෂිප්ත ය, නමුත් කේතය කියවා තේරුම් ගැනීමට පහසුය. Go කේතය අථත්‍ය යන්ත්‍රයක් භාවිතා නොකර ස්වදේශීයව ක්‍රියාත්මක වන Stand-alone binary executable files වෙත සම්පාදනය කර ඇත (profiling, debugging modules, සහ අනෙකුත් ධාවන කාල ගැටළු හඳුනාගැනීමේ උපපද්ධති ධාවන කාල සංරචක ලෙස ඒකාබද්ධ කර ඇත), එමඟින් C වැඩසටහන් සමඟ සැසඳිය හැකි කාර්ය සාධනය සඳහා ඉඩ ලබා දේ.

ව්‍යාපෘතිය මුලින් සංවර්ධනය කර ඇත්තේ බහු-නූල් ක්‍රමලේඛනය සහ බහු-මූලික පද්ධති මත කාර්යක්ෂමව ක්‍රියාත්මක කිරීම සඳහා වන අතර, සමාන්තර පරිගණකකරණය සහ සමාන්තර-ක්‍රියාත්මක කරන ලද ක්‍රම අතර අන්තර්ක්‍රියා සංවිධානය කිරීම සඳහා ක්‍රියාකරු මට්ටමේ මාධ්‍යයන් සැපයීම ඇතුළුව. භාෂාව වැඩිපුර වෙන් කරන ලද මතක කොටස් වලට එරෙහිව ගොඩනඟන ලද ආරක්ෂාවක් සපයන අතර කසළ එකතු කරන්නෙකු භාවිතා කිරීමේ හැකියාව ද සපයයි.

Go 1.16 හි හඳුන්වා දුන් ප්‍රධාන නව විශේෂාංග:

  • අත්තනෝමතික ගොනු සහ නාමාවලි වැඩසටහනට කාවැද්දීම සඳහා මෙවලම් සපයන කාවැද්දීම පැකේජය එක් කරන ලදී. සම්පාදනය කරන අවස්ථාවේ දී තැන්පත් කළ යුතු ගොනු නියම කිරීමට නව "//go:embed" විධානයක් සපයනු ලැබේ. උදාහරණයක් ලෙස, කේත විවරණයේ “//go:embed test.txt” සඳහන් කර පසුව “var f embed.FS” විචල්‍යය ප්‍රකාශ කිරීමෙන් test.txt ගොනුව කාවැද්දීම සහ “ හරහා එයට ප්‍රවේශ වීමේ හැකියාව ලැබේ. f" විස්තරකය. ඒ හා සමානව, ඔබට වැඩ සඳහා අවශ්‍ය යම් ආකාරයක සම්පත් හෝ තනි අගයන් සහිත ගොනු කාවැද්දීමට හැකිය, උදාහරණයක් ලෙස, version.txt ගොනුවෙන් තන්තු විචල්‍ය “s” ලබා ගැනීමට, ඔබට නියම කළ හැකිය: import _ “embed ” //go:embed version.txt var s string print (s)
  • පෙරනිමියෙන්, GOPATH-පාදක පරායත්ත කළමනාකරණය ප්‍රතිස්ථාපනය කරමින්, ඒකාබද්ධ අනුවාද සහාය සහිත නව මොඩියුල පද්ධතිය දැන් අවශ්‍ය වේ. GO111MODULE පරිසර විචල්‍යය දැන් පෙරනිමියෙන් "ඔන්" ලෙස සකසා ඇති අතර වැඩ කරන හෝ මව් නාමාවලියෙහි go.mod ගොනුවක් පැවතීම නොසලකා මොඩියුල මාදිලිය භාවිතා වේ. නව මාදිලියේදී, "go build" සහ "go test" වැනි build commands go.mod සහ go.sum හි අන්තර්ගතය වෙනස් නොකරන අතර "go install" විධානය අනුවාද තර්ක ("go install example.com/) සකසයි.[විද්‍යුත් ආරක්‍ෂිත]") පැරණි හැසිරීම නැවත ලබා දීමට, GO111MODULE "ස්වයංක්‍රීය" ලෙස වෙනස් කරන්න. සංවර්ධකයින්ගෙන් 96% ක් දැනටමත් නව මොඩියුල පද්ධතියට මාරු වී ඇති බව සටහන් වේ.
  • සම්බන්ධකය ප්‍රශස්ත කර ඇත. විශාල ව්‍යාපෘති සඳහා, පිරිසැලසුම දැන් 20-25% වේගවත් වන අතර 5-15% අඩු මතකයක් අවශ්‍ය වේ.
  • "සඳහා" ලූප, ක්‍රම අගයන් සහ 'වර්ගය ස්විචය' නිර්මිතයන් සඳහා සංක්ෂිප්ත අර්ථ දැක්වීම් සහිත ශ්‍රිතවල පේළිගත ප්‍රසාරණය සඳහා සම්පාදකයා සහාය එක් කර ඇත.
  • නව Apple M1 ARM චිපයෙන් සමන්විත Apple පද්ධති සඳහා සහය එක් කරන ලදී. 64-bit ARM මත NetBSD සහ MIPS64 පද්ධති මත OpenBSD සඳහා සහය ඇතිව netbsd/arm64 සහ openbsd/mips64 ports එකතු කරන ලදී. cgo සඳහා සහය සහ “-buildmode=pie” මාදිලිය linux/riscv64 port වෙත එක් කරන ලදී.
  • x87 සම්පාදන මාදිලිය සඳහා සහය නතර කර ඇත (GO386=387). SSE2 උපදෙස් රහිත ප්‍රොසෙසර සඳහා සහය දැන් "GO386=softfloat" මෘදුකාංග මාදිලිය හරහා ලබා ගත හැක.

මීට අමතරව, "ශුන්‍ය" අගය (ශුන්‍ය ආරක්ෂාව) භාවිතා කිරීම සඳහා ආරක්ෂිත මාදිලිය ස්ථාවර කර ඇති ඩාර්ට් 2.12 භාෂාවේ බීටා නිකුතුව පරීක්ෂා කිරීමේ ආරම්භය අපට සටහන් කළ හැකිය, එමඟින් විචල්‍යයන් භාවිතා කිරීමට උත්සාහ කිරීමෙන් සිදුවන බිඳවැටීම් වළක්වා ගැනීමට උපකාරී වේ. අගය නිර්වචනය කර නොමැති අතර "ශුන්‍ය" ලෙස සකසා ඇත. ප්‍රකාරයෙන් ඇඟවෙන්නේ විචල්‍යයන්ට පැහැදිලිවම ශුන්‍ය අගය පවරන්නේ නම් මිස ඒවාට ශුන්‍ය අගයන් තිබිය නොහැකි බවයි. මාදිලිය විචල්‍ය වර්ග වලට දැඩි ලෙස ගරු කරයි, එමඟින් සම්පාදකයාට අමතර ප්‍රශස්තිකරණයන් යෙදීමට ඉඩ සලසයි. සම්පාදනය කරන වේලාවේදී වර්ගය අනුකූලතාව පරීක්ෂා කරනු ලැබේ, උදාහරණයක් ලෙස, ඔබ "int" වැනි නිර්වචනය නොකළ තත්වයක් ඇඟවුම් නොකරන වර්ගයක් සහිත විචල්‍යයකට "Null" අගය පැවරීමට උත්සාහ කරන්නේ නම්, දෝෂයක් පෙන්වනු ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න