Google пусна предварителен преглед на новата версия на езика за програмиране Go. Версия 1.18 добавя функционалност за "общо" програмиране с така наречените "параметризирани" типове.
По собствените им думи това е най-важната и най-голямата промяна в езика за програмиране след пускането на Go версия 1. Идеята зад генериците е, че сега позволява функционалност за представяне на функции и структури от данни чрез модифициране на типовете. Това изключва „общността“, разрешена чрез дефиниране на тип интерфейс като начин за абстрахиране на действителните данни, които се пренасят във функция.
Google посочва, че разработчиците на Go трябва да осъзнаят, че функционалността несъмнено ще доведе до нови грешки. Следователно те трябва да подхождат с повишено внимание към тези „генерични лекарства“.
Друга функционалност в Go 1.18 Beta
В допълнение към горната функционалност, новият предварителен преглед също има вградена поддръжка за писане на тестове, базирани на fuzzing. Тези тестове могат автоматично да намерят входове, които причиняват срив на програмите или връщат невалидни отговори. Go 1.18 Beta предлага и нов „режим на работно пространство Go“. Това позволява на програмистите да работят с множество Go модули едновременно. Това е особено полезно за големи проекти, според Google.
Освен това, версия 1.18 Beta добавя функционалност с разширена команда go version -m. Тази команда вече съхранява подробности като флагове на компилатора. Една програма вече може да прави заявки за собствените си детайли за изграждане с командата debug.ReadBuildInfo.
Освен това в предварителния преглед е добавена повече конвенция за повиквания, базирана на регистър, достъпна след Go 1.17. Когато в предишната версия тази функционалност беше подходяща само за ускоряване на Go кода на x86 и x64 системи, сега тя е подходяща и за базирани на ARM64 и PPC64 системи. Това трябва да осигури до 20 процента повече скорост.