🎉 Вышел Go 1.23! 🎉
Ключевые нововведения:
• Итераторы — больше вот тут. TLDR: теперь можно делать range
по таким функциям:
func(func() bool)
func(func(K) bool)
func(func(K, V) bool)
• Opt-in телеметрия — опциональный сбор метрик и периодическая отправка их. Детальный док вот тут. TLDR: эта вещь позволяет понять как часто и каким командами пользуются Go разработчики, какие флаги они применяют и как часто люди сталкиваются с ошибками компилятора. Статистика обезличенная, а сам формат полностью в открытом доступе. Важно! Сбор по умолчанию включен, но никуда не отсылает метрики. Включить отправку можно с помощью команды
go telemetry on
. Выключить полностью можно с помощью команды go telemetry off
.• Директива
godebug
в go.mod
файлах.• Больше нельзя обратится к неэкспортируемым именам в стандартной библиотеке с помощью
//go:linkname
(за исключением ряда функций).•
time.Timer
и time.Ticker
больше не нужно останавливать для того, что-бы сборщик мусора смог их собрать. Во вторых, канал который ассоциирован с этими таймерами теперь небуферизированный и гарантирует, что в канале нет данных после остановки. Другими словами, после остановки time.Timer
и time.Ticker
больше не требуется пытаться вычитать данные из канала, на случай если таймер уже истек и послал данные в канал. Включается только если go.mod
содержит go 1.23.0
и выше. Заметку про это обновление можно прочитать вот тут.• Пакет unique. Про него тоже писал раньше.
• Много функции для итераторов.
Полное описание релиза вот тут.
>>Click here to continue<<
