Go 1.22 вже випущено, дізнайтеся про його нові функції та вдосконалення

Голанд

Go — це паралельна скомпільована мова програмування зі статичною типізацією, натхненною синтаксисом C.

Нова версія Go 1.22, надходить через шість місяців після версії 1.21, з низкою помітних змін до набору інструментів, середовища виконання, покращень оптимізації, вдосконалень компілятора та бібліотек.

Для тих, хто не знає про Go, мушу сказати, що це такЦе мова програмування, яку розробляє Google за участю спільноти як гібридне рішення, яке поєднує високу продуктивність скомпільованих мов з перевагами, такими як мови сценаріїв, такі як простота написання коду, швидкість розробки та захист від помилок.

Перейти 1.22 основні новини

У цій новій версії, яка представлена ​​з Go 1.22, основні моменти дві зміни в циклах "for".Як Раніше змінні, оголошені циклом for, створювалися один раз і оновлювалися в кожній ітерації. У Go 1.22 кожна ітерація циклу створює нові змінні щоб уникнути випадкових помилок спільного доступу, крім того Додано експериментальну підтримку (GOEXPERIMENT=rangefunc) для функцій діапазону до циклів for, що дозволяє вказати функцію як ітератор і вирішено давню проблему з циклами for що призвело до викликів співпрограм для спільного використання змінних циклу між ітераціями. Крім того, цикли for тепер можуть перебирати цілі числа. Наприклад:

пакет main import "fmt" func main() { for i := діапазон 10 { fmt.Println(10 - i) } fmt.Println("go1.22 стартує!") }

Ще однією помітною зміною в цій новій версії є введення вміння користуватися довідником «продавець« який містить залежності робочої області. Тепер команди ви можете використовувати цей каталог, який створюється за допомогою `іди працювати продавцем` і використовується в командах побудови коли ` встановлено-мод` в «продавець«, це значення за умовчанням, коли каталог існує «продавець» у робочій області.

Важливо відзначити, що функціональність `піди діставай` більше не підтримується поза модулем у режимі GOPATH успадковано. Однак інші команди збирання, як `go build` і `go test` Вони продовжуватимуть працювати необмежений час для застарілих програм GOPATH. Крім того, команда `go mod init` більше не намагатиметься імпортувати вимоги до модуля з конфігураційних файлів інших ««продаж» (як Gopkg.lock).

Go 1.22 представляє a новий пакет io/небезпечно який забезпечує функціональність для роботи з покажчиками та небезпечною пам'яттю. Цей пакет надає методи для перетворення вказівників на безпечні та небезпечні типи та з них, а також для виконання операцій копіювання пам’яті без перевірки меж.

Продовжилася робота з оптимізації компілятора на основі результатів сторПрофілювання коду PGO, і є це тепер компілятор використовує інструменти девіртуалізації для заміни непрямих викликів різних методів із розширеним виконанням вбудованих блоків. Коли PGO було ввімкнено, додана зміна покращила продуктивність більшості програм на 2%–14%.

У версії Виберіть Windows, програми, які пов’язують або завантажують бібліотеки Побудуйте з -buildmode=c-архів o -buildmode=c-shared тепер може використовувати Event Logging Windows (ETW) API через нові пакети час виконання/трасування y tracehook, які реалізують протокол збору трасування подій Go як постачальника ETW.

З інших змін, які виділяються:

  • Команда піти тест -покрити тепер друкує підсумки покриття для охоплених пакетів, які не мають власних тестових файлів.
  • os/exec, була додана можливість визначати атрибути контексту, що дозволяє встановлювати такі значення, як робочий каталог, змінні середовища та дескриптор файлу введення/виведення для виконуваних команд.
  • Оптимізовано керування пам’яттю під час виконання, що призвело до підвищення продуктивності на 1-3% і зменшення споживання пам’яті для більшості програм.
  • El paquete net/http, додано функцію CloseIdleConnections до клієнта HTTP, який закриває всі неактивні з’єднання, які нещодавно використовував клієнт
  • До компілятора додано вдосконалену експериментальну реалізацію (GOEXPERIMENT=newinliner) механізму вставки виклику, який використовує евристику для відділення важливих операцій від неважливих.
  • Пакет додано » math/rand/v2 » до стандартної бібліотеки, яка пропонує більш послідовний API і використовує швидші алгоритми для генерації псевдовипадкових чисел.
  • El paquete net/http.ServeMux Додана можливість вказувати методи та маски в шаблонах.

Нарешті, якщо ви є зацікавлений дізнатися більше про це, Ви можете перевірити деталі У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.