Вышел Go 1.23: обзор ключевых изменений нового релиза

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

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

Начать курс

Go 1.23: Новый виток эволюции языка от Google

Команда разработчиков Go (Golang) представила стабильный релиз версии 1.23. Это обновление не просто исправляет баги — оно вносит значительные изменения в стандартную библиотеку и систему типов, делая язык ещё более удобным и производительным. Если вы следите за экосистемой Go, эта версия определённо заслуживает внимания.

Главная «фишка» релиза — долгожданная поддержка итераторов на уровне языка (range-over-func). Теперь цикл for range может работать не только со срезами, мапами и строками, но и с произвольными функциями-итераторами. Это открывает путь к более элегантным конвейерам обработки данных без необходимости писать громоздкие callback-функции.

  • Итераторы (range-over-func). Стандартная библиотека уже включает десятки новых итераторов для пакетов slices, maps и bytes. Теперь можно писать for item := range myCollection.All() { ... } для пользовательских коллекций.
  • Обновлённый пакет math/rand. В Go 1.23 он получил новую реализацию генератора случайных чисел на основе ChaCha8. Это быстрее и безопаснее предыдущего алгоритма (Mersenne Twister), особенно при параллельном использовании.
  • Пакет unique. Новый экспериментальный пакет unique (ранее известный как unique/unique) предоставляет механизм для интернирования (deduplication) произвольных значений. Он позволяет экономить память при работе с повторяющимися строками или структурами.
  • Улучшения в тестировании. Функция t.Context() в пакете testing теперь возвращает контекст, который автоматически отменяется при завершении теста. Это упрощает написание тестов с таймаутами и отменой.
  • Повышение производительности. Оптимизирована сборка мусора (GC), улучшена работа планировщика горутин и снижено потребление памяти при работе с большими мапами.

Отдельно стоит отметить изменения в инструментарии. Компилятор go build теперь по умолчанию использует PGO (Profile-Guided Optimization), если в директории проекта найден файл профиля default.pgo. Это даёт прирост производительности до 5-10% без каких-либо правок кода.

Обновление также затрагивает безопасность: исправлено несколько уязвимостей в обработке TLS-сертификатов и работе с архивами. Разработчикам рекомендуется обновиться как можно скорее, особенно если проекты используют пакеты crypto/tls или archive/zip.

Для тех, кто только начинает изучать Go, версия 1.23 — отличный повод присоединиться к сообществу. Язык становится всё более дружелюбным, а новые итераторы и улучшенный math/rand упрощают решение типовых задач.

Как обновиться? Просто скачайте новую версию с официального сайта go.dev или используйте менеджер версий gvm. После установки проверьте версию командой go version — вы должны увидеть go1.23.0.

Следите за обновлениями на PythonLib — мы продолжаем рассказывать о самых важных событиях в мире программирования. Go 1.23 — это шаг вперёд, который оценят и новички, и опытные разработчики.

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