Go 1.22 již byl vydán, seznamte se s jeho novými funkcemi a vylepšeními

goland

Go je souběžný kompilovaný programovací jazyk se statickým psaním inspirovaným syntaxí C.

Nová verze Go 1.22, přichází šest měsíců po verzi 1.21, s řadou pozoruhodných změn sady nástrojů, běhového prostředí, optimalizačních vylepšení, vylepšení kompilátorů a knihoven.

Pro ty, kteří o Go nevědí, musím říct, že tohle jeJe to programovací jazyk vyvíjený společností Google za účasti komunity jako hybridní řešení, které kombinuje vysoký výkon kompilovaných jazyků s výhodami, jako jsou skriptovací jazyky, jako je snadné psaní kódu, rychlost vývoje a ochrana proti chybám.

Přejít na hlavní novinky 1.22

V této nové verzi, která je představena od Go 1.22, jsou nejdůležitější dvě změny v smyčkách "for".Jak Dříve byly proměnné deklarované smyčkou for vytvořeny jednou a byly aktualizovány v každé iteraci. V Go 1.22 každá iterace cyklu vytváří nové proměnné aby se navíc předešlo náhodným chybám při sdílení Přidána experimentální podpora (GOEXPERIMENT=rangefunc) pro funkce rozsahu do smyček for, což umožňuje zadat funkci jako iterátor a vyřešil dlouhotrvající problém se smyčkami for což způsobilo, že volání corutiny sdílela proměnné smyčky mezi iteracemi. Smyčky for nyní navíc mohou procházet celými čísly. Například:

package main import "fmt" func main() { for i := rozsah 10 { fmt.Println(10 - i) } fmt.Println("go1.22 startuje!") }

Další významnou změnou v této nové verzi je zavedení schopnost používat adresář «prodejce« který obsahuje závislosti pracovního prostoru. Nyní příkazy můžete použít tento adresář, který je vytvořen pomocí `jít pracovat prodavači` a používá se v příkazech sestavení když je nastaveno `-mod` v «prodejce«, toto je výchozí hodnota, když adresář existuje «prodejce» v pracovním prostoru.

Je důležité poznamenat, že funkčnost `jdi si` již není podporován mimo modul v režimu GOPATH zděděno Nicméně, jiné příkazy sestavení jako `go build` a `go test` Budou pokračovat v práci na dobu neurčitou pro starší programy GOPATH. Dále příkaz `přejít do modu init` se již nebude pokoušet importovat požadavky na modul z konfiguračních souborů jiných «"prodej" (jako Gopkg.lock).

Go 1.22 představuje a nový balíček io/nebezpečné který poskytuje funkce pro práci s ukazateli a nebezpečnou pamětí. Tento balíček poskytuje metody pro převod ukazatelů na az bezpečných a nebezpečných typů a také pro provádění operací kopírování paměti bez kontroly hranic.

Pokračovaly práce na optimalizacích v kompilátoru na základě výsledků pprofilování kódu PGO, a je to nyní kompilátor používá devirtualizační nástroje k nahrazení nepřímých volání různých metod s rozšířeným prováděním inline bloku. Když bylo povoleno PGO, přidaná změna zlepšila výkon většiny programů o 2 % až 14 %.

Ve verzi Přejděte na Windows, programy, které propojují nebo načítají knihovny Stavějte s -buildmode=c-archiv o -buildmode=c-shared nyní může používat rozhraní API systému Windows (ETW) pro protokolování událostí prostřednictvím nových balíčků runtime/trace y sledovací háček, které implementují protokol sběru trasování událostí Go jako poskytovatel ETW.

Z dalších změn, které vynikají:

  • Příkaz jdi test-kryt nyní tiskne souhrny pokrytí pro kryté balíčky, které nemají vlastní testovací soubory.
  • os/execbyla přidána možnost definovat kontextové atributy, což vám umožňuje nastavit hodnoty, jako je pracovní adresář, proměnné prostředí a deskriptor vstupního/výstupního souboru pro prováděné příkazy.
  • Optimalizovaná správa paměti za běhu, výsledkem je 1-3% zvýšení výkonu a 1% snížení spotřeby paměti u většiny aplikací.
  • El paquete net/http, funkce byla přidána CloseIdleConnections na klienta HTTP, čímž se zavře všechna nečinná připojení, která klient v poslední době používal
  • Do kompilátoru byla přidána vylepšená experimentální implementace (GOEXPERIMENT=newinliner) mechanismu vkládání volání, který využívá heuristiku k oddělení důležitých operací od těch nedůležitých.
  • Balíček byl přidán » matematika/rand/v2 » do standardní knihovny, která nabízí konzistentnější API a používá rychlejší algoritmy pro generování pseudonáhodných čísel.
  • El paquete net/http.ServeMux Přidána možnost specifikovat metody a masky v šablonách.

Konečně, pokud ano zájem se o tom dozvědět více, můžete zkontrolovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.