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 відсотків більше швидкості.