Нашри забони барномасозии Go 1.18

Нашри забони барномасозии Go 1.18 муаррифӣ шудааст, ки онро Google бо иштироки ҷомеа ҳамчун як ҳалли гибридӣ таҳия мекунад, ки иҷрои баланди забонҳои тартибдодашударо бо бартариҳои забонҳои скриптӣ, ба монанди осонии навиштани код муттаҳид мекунад. , суръати рушд ва муҳофизати хатогиҳо. Рамзи лоиҳа таҳти иҷозатномаи BSD паҳн карда мешавад.

Синтаксиси Go ба унсурҳои шиноси забони Си бо баъзе қарзҳо аз забони Python асос ёфтааст. Забон хеле мухтасар аст, аммо кодро хондан ва фаҳмидан осон аст. Рамзи Go ба файлҳои иҷрошавандаи бинарии мустақил тартиб дода мешавад, ки бе истифодаи мошини виртуалӣ кор мекунанд (профилсозӣ, модулҳои ислоҳи хатогӣ ва дигар зерсистемаҳои муайянкунии мушкилоти вақти корӣ ҳамчун ҷузъҳои вақти корӣ муттаҳид карда мешаванд), ки имкон медиҳад иҷроишро бо барномаҳои C муқоиса кунад.

Лоиҳа дар ибтидо бо назардошти барномасозии бисёрсоҳавӣ ва кори муассир дар системаҳои бисёраслӣ, аз ҷумла таъмини воситаҳои сатҳи оператор барои ташкили ҳисобҳои параллелӣ ва ҳамкорӣ байни усулҳои параллелӣ иҷрошуда таҳия шудааст. Забон инчунин муҳофизати дохилиро аз блокҳои хотираи аз ҳад зиёд ҷудошуда таъмин мекунад ва қобилияти истифодаи коллектори партовҳоро таъмин мекунад.

Версияи нав дастгирии функсияҳо ва намудҳои умумӣ (генерикӣ) илова мекунад, ки бо ёрии онҳо таҳиягар метавонад вазифаҳоеро муайян ва истифода барад, ки барои кор бо якчанд намуд якбора пешбинӣ шудаанд. Инчунин мумкин аст, ки интерфейсҳоро барои эҷоди намудҳои омехта, ки намудҳои гуногуни маълумотро фаро мегиранд, истифода баред. Дастгирии генерикҳо бидуни вайрон кардани мутобиқати ақиб бо рамзи мавҷуда амалӣ карда мешавад. // Қиматҳои маҷмӯи ҷамъ, кор барои намудҳои int64 ва float64 func SumIntsOrFloats[K comparable, V int64 | float64](m харитаи[K]V) V { var s V барои _, v := диапазон m { s += v } баргардонидани s } // Варианти дигар бо таърифи навъи умумӣ: навъи интерфейси рақам { int64 | float64 } func Маблағҳо[К муқоисашаванда, Рақами V](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 коркарди сертификатҳоеро, ки бо истифода аз hash SHA-1 имзо шудаанд, қатъ кардааст.
  • Талабот ба муҳити зист дар Linux баланд шуд; барои кор кардан акнун шумо бояд ядрои Linux-и ҳадди аққал версияи 2.6.32 дошта бошед. Дар нашри навбатӣ барои FreeBSD тағйироти шабеҳ интизоранд (дастгирии филиали FreeBSD 11.x қатъ карда мешавад) ва барои кор ҳадди ақал FreeBSD 12.2 лозим аст.

Манбаъ: opennet.ru

Илова Эзоҳ