Вышел Go 1.23: обзор новых возможностей и улучшений

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Вышел Go 1.23: что изменилось в новом релизе

Команда разработчиков Go официально представила релиз Go 1.23. Это обновление, доступное для скачивания на официальном сайте golang.org, привносит ряд значительных изменений в язык, стандартную библиотеку и инструментарий компилятора. Хотя версия 1.22 была сосредоточена на исправлении ошибок и улучшении «for»-циклов, Go 1.23 делает акцент на повышении производительности и внедрении экспериментальных функций.

Давайте разберём самые важные нововведения, которые будут полезны как новичкам, так и опытным разработчикам на Go.

Основные изменения в языке и компиляторе

Ключевой особенностью Go 1.23 стала интеграция поддержки итераторов в стандартную библиотеку. Теперь многие пакеты, такие как maps, slices и sort, предоставляют функции, возвращающие итераторы. Это позволяет использовать новый синтаксис цикла:

  • Итераторы для срезов и мап: Вместо явного вызова for k, v := range myMap теперь можно использовать maps.Keys(m) для получения итератора по ключам.
  • Улучшенная работа с временем: Добавлен пакет time с новыми функциями для работы с интервалами, которые упрощают парсинг и форматирование.
  • Экспериментальный пакет iter: Представлен пакет iter, который позволяет создавать собственные пользовательские итераторы, что делает код более гибким.

Кроме того, компилятор получил значительные оптимизации. В частности, улучшена генерация кода для архитектуры ARM64 (особенно для Apple Silicon), что приводит к приросту производительности в вычислительных задачах на 2-5%.

Изменения в инструментарии (go command)

Инструмент командной строки go также получил обновления. Главное новшество — это поддержка линтера для тел структур в документации. Теперь go vet будет предупреждать, если вы неправильно форматируете примеры кода внутри комментариев, что повышает качество документации.

  • Стабильная обратная совместимость: Продолжается работа над гарантией того, что старые программы будут компилироваться новыми версиями. Go 1.23 полностью совместим с предыдущими релизами.
  • Улучшенная обработка ошибок: В стандартной библиотеке расширено использование функций errors.Join и нового пакета log/slog для структурированного логирования.

Что это значит для разработчиков?

Релиз Go 1.23 — это эволюционный шаг, который делает язык ещё удобнее. Основные выгоды для разработчиков:

  • Чистый код: Использование итераторов избавляет от необходимости писать вспомогательные функции для обхода коллекций.
  • Производительность: Оптимизации компилятора позволяют экономить ресурсы серверов, особенно на ARM-архитектурах (Raspberry Pi, MacBook M-серии).
  • Упрощение миграции: Благодаря обратной совместимости, вы можете обновить версию Go в проекте без риска сломать существующий код.

Рекомендуем всем разработчикам, использующим Go, обновиться до версии 1.23. Это можно сделать, скачав дистрибутив с официального сайта или выполнив go install golang.org/dl/go1.23@

Рекомендуем библотеки