Сегодня состоялся релиз Go 1 — первый стабильный релиз языка программирования Go. Разработчики заявляют, что программы работающие под Go 1 в большинстве случаев будут работать без изменения и в следующих версиях языка. Также теперь будут предоставляться официальные сборки компилятора для всех популярных платформ: Linux, Mac OS X, FreeBSD и Windows.
В релиз вошло немного изменений, так как разработчики сосредоточились над исправлением ошибок и улучшением переносимости, но тем не менее, некоторые существенные нововведения все же были реализованы:
- Новый тип для юникодных символов.
- Новый тип для ошибок.
- Простой синтаксис для удаления элемента из отображения (map).
- Добавлен синтаксис для циклов по отображениям.
- Добавлен синтаксис множественного присваивания.
- Запрещен close для принимающих каналов.
- Улучшен синтаксис композитных литералов.
- Теперь можно использовать goroutines перед окончанием инициализации программы.
- В функциях с именованной возвращаемой переменной нельзя использовать пустой return в случае, если возвращаемая переменная затенена локальной.
- Изменения правил проверки равенства: добавлена возможность сравнения равенства массивов и структур, убрана возможность проверки равенства функциональных переменных и отображений (кроме сравнения с nil).
- Полностью переработан модуль стандартной библиотеки time. Теперь он больше не привязан к unix epoch time и позволяет легко оперировать привычными единицами измерения, например, годами или часами. Также теперь различаются временные промежутки (durations) и абсолютные значения времени.
Также обновлен Google App Engine SDK для Go.