Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Официальный релиз Go 1.18 состоится только через пару месяцев. Это первый предварительный выпуск Go 1.18, чтобы вы могли попробовать его и сообщить о проблемах. Go 1.18 Beta 1 — это огромный объём работы всей команды разработчиков Go в Google и участников проекта Go по всему миру. Нам очень хочется узнать ваше мнение.
Go 1.18 Beta 1 — первый предварительный выпуск, содержащий поддержку дженерик-кода с параметризованными типами. Дженерики — это самое значительное изменение в Go с момента выхода Go 1 и, конечно, самое крупное изменение в языке, которое мы делали когда-либо.
В любой крупной новой функции новые пользователи часто обнаруживают новые ошибки, и мы не ждём, что дженерики станут исключением; обязательно подходите к ним с соответствующей осторожностью. Кроме того, некоторые случаи, например определённые виды рекурсивных дженерик-типов, отложены до будущих релизов.
Мы знаем первых пользователей, которые остались довольны, и, если у вас есть сценарии использования, по вашему мнению особенно подходящие для дженериков, мы надеемся, что вы попробуете их.
Нами опубликовано краткое руководство о том, как начать работать с дженериками, и на прошлой неделе выступили с докладом на GopherCon. Вы даже можете попробовать новую версию в песочнице.
В Go 1.18 Beta 1 добавлена нативная поддержка фаззинга для автоматического поиска входных данных, которые приводят к аварийному завершению программы или возвращают неверные ответы. Появился режим рабочего пространства Go, позволяющий работать с несколькими модулями одновременно, что важно для больших проектов.
Команда go version -m
, которая теперь записывает детали сборки, например флаги компилятора. Программа может запрашивать данные о собственной сборке через debug.ReadBuildInfo, а также при помощи debug/buildinfo может читать данные о сборке из других двоичных файлов.
Эта функциональность должна стать основой любого инструмента, которому необходимо создать спецификацию ведомость материалов ПО (SBOM) для двоичных файлов Go.
В этом году в Go 1.17 была добавлена новая конвенция вызова на основе регистров, чтобы ускорить работу кода на системах x86-64. Go 1.18 Beta 1 расширяет данную возможность на ARM64 и PPC64, и это увеличивает скорость на 20%.
Спасибо всем, кто участвовал в создании этого релиза, и особенно команде Google, которая в течение многих лет неустанно работает, чтобы сделать дженерики реальностью. Это был долгий путь, мы очень довольны результатом и надеемся, что он понравится и вам. Более подробную информацию смотрите в черновике описания релиза Go 1.18. Как всегда, если вы заметили какие-либо проблемы, пожалуйста, сообщите нам.
Научиться решать практические задачи на Go и других языках вы сможете на наших курсах:
Профессия Backend-разработчик на Go (12 месяцев)
Профессия Fullstack-разработчик на Python (15 месяцев)
Узнайте подробности акции.
Профессии и курсы
Data Science и Machine Learning
Профессия Data Scientist
Профессия Data Analyst
Курс «Математика для Data Science»
Курс «Математика и Machine Learning для Data Science»
Курс по Data Engineering
Курс «Machine Learning и Deep Learning»
Курс по Machine Learning
Python, веб-разработка
Профессия Fullstack-разработчик на Python
Курс «Python для веб-разработки»
Профессия Frontend-разработчик
Профессия Веб-разработчик
Мобильная разработка
Профессия iOS-разработчик
Профессия Android-разработчик
Java и C#
Профессия Java-разработчик
Профессия QA-инженер на JAVA
Профессия C#-разработчик
Профессия Разработчик игр на Unity
От основ — в глубину
Курс «Алгоритмы и структуры данных»
Профессия C++ разработчик
Профессия Этичный хакер
А также
Курс по DevOps
Все курсы