Grow with AppMaster Grow with AppMaster.
Become our partner arrow ico

Go 1.18 официально выпущен с новаторскими возможностями дженериков

Go 1.18 официально выпущен с новаторскими возможностями дженериков

Долгожданный язык программирования Go 1.18, наконец, был запущен в качестве рабочей версии, в которой представлены его новаторские возможности дженериков. Это самое значительное изменение в языке программирования Go с момента первого запуска Go 1.0 в 2012 году. Go 1.18 можно загрузить с сайта go.dev с 15 марта.

Универсальные функции были самой востребованной функцией программистов Go, предлагая поддержку универсального кода с использованием параметризованных типов. Планируется, что последующие выпуски обеспечат дальнейшую поддержку более сложных универсальных вариантов использования. Пользователи могут получить доступ к информации об этой функции через учебник по дженерикам и примечания к выпуску .

Языковой сервер Go, gopls, вместе с расширением Visual Studio Code Go теперь поддерживают дженерики. Инструкции по установке gopls с дженериками см. в документации.

Производственный выпуск Go 1.18 следует за стадиями бета-тестирования и релиз-кандидата. Первоначальный выпуск ожидался в феврале 2022 года, но был отложен до середины марта. Go 1.18 Beta 1, дебютировавшая 14 декабря, была передовым предварительным выпуском разработанного Google языка с открытым исходным кодом для поддержки универсального кода с использованием параметризованных типов. Эта бета-версия также была самой загружаемой бета-версией Go за всю историю: количество загрузок в два раза больше, чем у любой предыдущей бета-версии.

Универсальное программирование — это усовершенствование, позволяющее представлять функции и структуры данных в универсальной форме с выделением типов. Это облегчает совместное использование кода и упрощает создание программ.

Команда Go посоветовала проявлять осторожность при подходе к новым возможностям дженериков, так как новые ошибки могут появиться с любой существенной новой функцией. Кроме того, поддержка конкретных малозаметных случаев, таких как определенные виды рекурсивных универсальных типов, отложена до будущих выпусков.

Несмотря на это предупреждение, первые пользователи остались довольны новой функцией. Краткое руководство по началу работы с дженериками опубликовано здесь . Хотя у Go были типы интерфейсов, форма универсального программирования, в нем отсутствовали определенные аспекты, которые разработчики Go хотели от универсальных шаблонов, как сообщалось в сообщении в блоге за июль 2019 года. Например, сторонники дженериков Go искали такие функции, как Reverse, не заботясь о типе элемента среза.

В выпущенных примечаниях к Go 1.18 также подчеркиваются другие его ключевые особенности, такие как:

  • Встроенная поддержка написания тестов на основе фаззинга для выявления входных данных, вызывающих сбой программы или возврат неверных ответов. Эта функция является экспериментальной в Go 1.18.
  • Режим рабочего пространства Go, позволяющий разработчикам работать с несколькими модулями Go одновременно, что необходимо для более масштабных проектов.
  • Усовершенствованная команда go version -m, которая теперь записывает сведения о сборке, такие как флаги компилятора.
  • Переменная среды GOAMD64, позволяющая пользователям выбирать из четырех версий архитектуры AMD64.
  • Улучшение производительности ЦП на Apple M1, ARM64 и PowerPC64 на целых 20 % связано с расширением соглашения о вызовах регистров ABI Go 1.17 на эти архитектуры.
  • Порты Windows/Arm и Windows/Arm64 теперь поддерживают некооперативное упреждение, что делает эту возможность доступной для всех четырех портов Windows и потенциально устраняет тонкие ошибки, возникающие при вызове функций Win32, которые блокируются в течение длительного времени.
  • Более предсказуемые накладные расходы на сборку мусора, когда источники работы сборщика мусора, не связанные с кучей, значительны, благодаря включению этих источников при определении частоты запусков сборки мусора.

Go 1.17 был выпущен в августе. Go наиболее известен своим использованием в разработке системы контейнеров Docker и был разработан как простой, легкий в освоении язык программирования с надежной поддержкой параллелизма. Для разработчиков, которые хотят изучить решения no-code, такие как платформа AppMaster, для создания веб-приложений, мобильных и серверных приложений, это может помочь ускорить разработку приложений и сократить расходы, устраняя при этом технический долг.

Похожие статьи

AppMaster на BubbleCon 2024: изучение тенденций No-Code
AppMaster на BubbleCon 2024: изучение тенденций No-Code
AppMaster принял участие в BubbleCon 2024 в Нью-Йорке, где получил новые знания, расширил связи и изучил возможности внедрения инноваций в сфере разработки без кода.
Итоги FFDC 2024: основные выводы с конференции разработчиков FlutterFlow в Нью-Йорке
Итоги FFDC 2024: основные выводы с конференции разработчиков FlutterFlow в Нью-Йорке
Конференция FFDC 2024 (Нью-Йорк) предоставила разработчикам передовые идеи в разработке приложений с FlutterFlow. Сессии под руководством экспертов, эксклюзивные обновления и обмен опытом — такое событие мы не могли пропустить!
Увольнения в сфере технологий в 2024 году: продолжающаяся волна, влияющая на инновации
Увольнения в сфере технологий в 2024 году: продолжающаяся волна, влияющая на инновации
В 2024 году, когда в 254 компаниях, включая таких гигантов, как Tesla и Amazon, будет сокращено 60 000 рабочих мест, продолжится волна увольнений в сфере технологий, которая изменит ландшафт инноваций.
Начните бесплатно
Хотите попробовать сами?

Лучший способ понять всю мощь AppMaster - это увидеть все своими глазами. Создайте собственное приложение за считанные минуты с бесплатной подпиской AppMaster

Воплотите свои идеи в жизнь