Go 1.21 выходит с изменениями нумерации, улучшениями и многим другим

Голанд

Go — параллельный скомпилированный язык программирования со статической типизацией, вдохновленный синтаксисом C.

Вскоре после 6 месяцев запуска предыдущей версии переделывать популярного языка программирования Перейти 1.21 и в этой новой версии добавлены новые функции к языку, а также PGO, совместимость с предыдущими версиями и многое другое.

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





Go 1.21 основные новости

С выпуском этой новой версии Go 1.21, внесено небольшое изменение в нумерацию версий, нумерация уже была обработана в форме Go 1.x для обозначения как глобальной версии языка Go, так и семейства версий, а также первой версии этого семейства. Начиная с Go 1.21, первая версия теперь Go 1.X.0. Дополнительную информацию о том, как будет обрабатываться новая нумерация Go, можно получить по адресу по следующей ссылке.





Для части изменений, которые выделяются из этого нового выпуска, мы можем найти реализованная поддержка для оптимизаций по результатам профилирования кода (Генпрокуратура — Profile Guided Optimization), так как в предыдущей версии он был доступен только в качестве предварительного просмотра, а теперь в Go 1.21 он доступен для общего использования.

Еще одно изменение, которое выделяется в этой новой версии, заключается в том, что реализован экспериментальный порт для компиляции код подготовки WebAssembly с использованием WASI API (Системный интерфейс WebAssembly) для обеспечения независимого выполнения.





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

Также отмечается, что в этой новой версии утилита go обратно и вперед совместима из других версий языка Go, позволяя использовать старые инструменты для создания нового кода, и наоборот. Когда Go должен изменить этот тип поведения, теперь он выбирает между старым и новым поведением в зависимости от рабочей области.

С другой стороны, мы также можем найти, что добавлена ​​экспериментальная поддержка новой семантики для обработки переменных в циклах, что позволяет избежать типичных ошибок из-за специфики поведения при использовании замыканий и сопрограмм в итерациях. Новая семантика предполагает создание для каждой итерации цикла отдельного экземпляра переменной, объявленной в цикле for с помощью оператора «:=».





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

Из другие изменения, которые выделяются, мы можем найти новые пакеты, добавленные в стандартную библиотеку:





  • log/slog: функции для записи структурированных журналов.
  • слайсы: типичные операции со слайсами любого типа.
  • карты: полезные операции над присваиваниями (картами) с любыми ключами и элементами.

    cmp: функции для сравнения упорядоченных значений.
  • Компилятор был пересобран с включением PGO оптимизаций, что позволило ускорить компиляцию программ на 2-4%.
  • Сборщик мусора был оптимизирован для уменьшения задержки до 40% в некоторых приложениях.
  • Уменьшены накладные расходы при трассировке кода с помощью пакета runtime/trace в системах amd64 и arm64.

Наконец, если вы интересно узнать о нем больше, вы можете проверить детали в по следующей ссылке.




2023-08-14T16:02:44
программирование