Golang 1.14 что нового в новый релизе

golang 1.14 что нового
Метки: /

Представлен новый релиз языка программирования Go или Golang 1.14 вы узнаете что нового в нём, который развивается компанией Google при участии сообщества как гибридное решение. Код проекта распространяется под лицензией BSD.

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

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

Основные новшества Golang 1.14:

  • Новая система модулей в команде «go» объявлена готовой для повсеместного использования, включена по умолчанию и рекомендована для управления зависимостями вместо GOPATH. Новая система модулей отличается интегрированной поддержкой версионирования, средствами доставки пакетов и улучшенной системой управления зависимостями. При помощи модулей разработчики больше не привязаны к работе внутри дерева GOPATH, могут явно определять зависимости с учётом версий и создавать повторяемые сборки.
  • Добавлена поддержка встраивания интерфейсов с перекрывающимся набором методов. Методы из встроенного интерфейса теперь могут иметь те же имена и одинаковые сигнатуры, что и у методов в уже присутствующих интерфейсах. Явно объявленные методы как и раньше остаются уникальными.
  • Увеличена производительность выражения «defer», использование которого теперь почти не отличается по скорости от прямого вызова отложенной функции, что позволяет применять отсроченный запуск функции в коде, чувствительном к производительности.
  • Обеспечена асинхронное вытеснение сопрограмм (goroutine) — циклы, не содержащие вызова функций, теперь потенциально не могут привести к взаимной блокировке планировщика или задержке начала сборки мусора.
  • Повышена эффективность системы распределения страниц памяти, в которой теперь наблюдается значительно меньше конфликтов блокировок в конфигурациях с большими значениями GOMAXPROCS. Как результат уменьшились задержки и повысилась пропускная способность при параллельном интенсивном распределении больших блоков памяти.
  • Оптимизированы блокировки и снижено число переключений контекста при работе внутренних таймеров, используемых в функциях time.After, time.Tick, net.Conn.SetDeadline.
  • В команде go по умолчанию активирован флаг «-mod=vendor», если в корне имеется каталог vendor, предназначенный для поставки внешних зависимостей, привязанных к определённому поставщику. Добавлен отдельный флаг «-mod=mod» для загрузки модулей из кэша модулей, а не из каталога «vendor». Если файл go.mod доступен только для чтения по умолчанию обеспечено выставление флага «-mod=readonly», если отсутствует верхний каталог «vendor». Добавлен флаг «-modfile=file» для задания альтернативного файла go.mod вместо имеющегося в корневом каталоге модуля.
  • Добавлена переменная окружения GOINSECURE, при установке которой команда go не требует использования HTTPS и пропускает проверку сертификатов при загрузке модулей напрямую.
  • В компилятор добавлен включённый по умолчанию флаг «-d=checkptr» для проверки кода на соответствие правилам безопасного использования unsafe.Pointer.
  • В поставку включён новый пакет hash/maphash с некриптографическими хэш-функциями для создания хэш-таблиц для произвольных байтовых последовательностей или строк.
  • Добавлена экспериментальная поддержка 64-разрядной платформы RISC-V в Linux.
  • Добавлена поддержка FreeBSD на 64-разрядных системах ARM.

Вывод:

Как видите нововведений много, но это только основные, если вам интересно узнать подробнее, то заходите сюда.

Источник: OpenNet.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Количество оценивших: 1
Средняя оценка: 5,00
Загрузка...

Поделится:

Также рекомендую: