Google апублікаваў папярэдні прагляд новай версіі мовы праграмавання Go. Версія 1.18 дадае функцыянальныя магчымасці для "агульнага" праграмавання з так званымі "параметрызаванымі" тыпамі.
Па іх уласных словах, гэта самае важнае і самае вялікае змяненне ў мове праграмавання з моманту выхаду Go версіі 1. Ідэя генерыкаў заключаецца ў тым, што цяпер яна дазваляе функцыянальнасць для прадстаўлення функцый і структур даных шляхам змянення тыпаў. Гэта выключае «агульнасць», дазволеную вызначэннем тыпу інтэрфейсу як спосабу абстрагавання фактычных даных, якія пераносяцца ў функцыю.
Google паказвае, што распрацоўшчыкі Go павінны разумець, што функцыянальнасць, несумненна, прывядзе да новых памылак. Таму да гэтых «генерыкаў» варта падыходзіць асцярожна.
Іншыя функцыі ў Go 1.18 Beta
У дадатак да вышэйзгаданых функцый, новы папярэдні прагляд таксама мае ўбудаваную падтрымку напісання тэстаў на аснове фазінга. Гэтыя тэсты могуць аўтаматычна знаходзіць ўваходныя дадзеныя, якія выклікаюць збой праграм або вяртаюць несапраўдныя адказы. Go 1.18 Beta таксама прапануе новы «рэжым працоўнай прасторы Go». Гэта дазваляе праграмістам працаваць з некалькімі модулямі Go адначасова. Па словах Google, гэта асабліва карысна для буйных праектаў.
Акрамя таго, версія 1.18 Beta дадае функцыянальныя магчымасці з дапамогай пашыранай каманды go version -m. Цяпер гэтая каманда захоўвае дэталі ў выглядзе флагаў кампілятара. Цяпер праграма можа запытваць уласныя дэталі зборкі з дапамогай каманды debug.ReadBuildInfo.
Акрамя таго, у папярэднім праглядзе было дададзена большае згадванне аб выкліках на аснове рэгістраў, якое даступна з Go 1.17. Калі ў папярэдняй версіі гэтая функцыя была прыдатная толькі для паскарэння кода Go на сістэмах x86 і x64, то цяпер яна таксама падыходзіць для сістэм на базе ARM64 і PPC64. Гэта павінна забяспечыць да 20 працэнтаў больш хуткасці.