В блоге Golang 14 декабря 2021 года появилась новость о выходе версии Golang 1.18 Beta 1. Разработчики языка дали возможность программистам протестировать нововведения до основного релиза, который состоится в начале 2022-го.
Главным и долгожданным обновлением стала поддержка дженериков. Для функций и структур теперь можно указывать тип принимаемых аргументов с помощью квадратных скобок.
Кроме того, можно задавать ограничения на входные типы параметров. Это позволяет сделать код более безопасным и уменьшить число ошибок.
Добавили поддержку рабочего режима. Она позволяет разработчикам проще следить за несколькими модулями одновременно. Если раньше нужно было перед коммитом удалять лишние строки в файле go.mod, то теперь можно указать вспомогательные модули в go.work.
Появилась встроенная поддержка fuzzing-тестирования. Оно помогает автоматически тестировать приложения, передавая на вход неожиданные или случайные данные. Подробности можно прочитать в официальном блоге Golang.
Полный список изменений можно посмотреть в пресс-релизе от Google. А дженерики можно безопасно потестить в песочнице.
Вот что об этом думают пользователи Reddit:
«А где летающие свиньи, которые были обещаны? Рад, что эта функция наконец-то вышла в бету. Я не очень знаком с Go, но думаю, что это действительно что-то важное для комьюнити — то, чего ждали уже долгое время».
«Я из тех, кто считает, что ЯП не достиг просветления, пока он не уберёт возврат значений полностью. Лучше присваивать значение глобальной переменной и использовать goto, чтобы вернуться назад к вызывающей функции или наверх по коду».
PhaseSea1141: «Отлично, теперь дайте нам суммирование типов».
Iuse_arch_btw: «10 лет спустя…»