Wersja Go 1.22 została już wydana, poznaj jej nowe funkcje i ulepszenia

goland

Go to współbieżny, skompilowany język programowania ze statycznym typowaniem inspirowany składnią C.

Nowa wersja Przejdź do wersji 1.22, pojawia się sześć miesięcy po wersji 1.21, z wieloma znaczącymi zmianami w zestawie narzędzi, środowisku wykonawczym, ulepszeniami optymalizacji, ulepszeniami kompilatora i bibliotek.

Dla tych, którzy nie wiedzą o Go, muszę powiedzieć, że to jestJest to język programowania rozwijany przez Google przy współudziale społeczności jako rozwiązanie hybrydowe, które łączy w sobie wysoką wydajność języków kompilowanych z zaletami takimi jak języki skryptowe, takimi jak łatwość pisania kodu, szybkość rozwoju i ochrona przed błędami.

Główne nowe funkcje Go 1.22

W tej nowej wersji, która została wprowadzona od Go 1.22, podkreśla dwie zmiany w pętlach „for”.Jak Poprzednio zmienne deklarowane w pętli for były tworzone tylko raz i były aktualizowane w każdej iteracji. W Go 1.22 każda iteracja pętli tworzy nowe zmienne aby dodatkowo uniknąć przypadkowych błędów podczas udostępniania Dodano eksperymentalną obsługę (GOEXPERIMENT=rangefunc) dla funkcji zakresu w pętlach for, co pozwala określić funkcję jako iterator i rozwiązano długotrwały problem z pętlami for co spowodowało, że wywołania współprogramu udostępniały zmienne pętli między iteracjami. Dodatkowo pętle for mogą teraz przeglądać liczby całkowite. Na przykład:

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

Kolejną zauważalną zmianą w tej nowej wersji jest wprowadzenie możliwość korzystania z katalogu «sprzedawca« który zawiera zależności obszaru roboczego. Teraz polecenia możesz użyć tego katalogu, który jest utworzony za pomocą `idź do pracy, sprzedawca` i jest używany w poleceniach kompilacji kiedy ustawione jest `-mod` w «sprzedawca«, jest to wartość domyślna, gdy istnieje katalog «sprzedawca» w obszarze roboczym.

Warto zauważyć, że funkcjonalność `idź weź` nie jest już obsługiwane poza modułem w trybie GOPA dziedziczone Jednakże inne polecenia kompilacji, takie jak „przejdź do kompilacji” i „przejdź do testu”. Będą kontynuować pracę w nieskończoność w ramach starszych programów GOPATH. Poza tym polecenie „przejdź do inicjacji modów”. nie będzie już próbował importować wymagań modułów z plików konfiguracyjnych innych «„sprzedawanie” (jak Gopkg.lock).

Wersja 1.22 wprowadza: nowy pakiet io/niebezpieczne który zapewnia funkcjonalność do pracy ze wskaźnikami i niebezpieczną pamięcią. Pakiet ten udostępnia metody konwertowania wskaźników do i z typów bezpiecznych i niebezpiecznych, a także wykonywania operacji kopiowania pamięci bez sprawdzania granic.

Kontynuowano prace obejmujące optymalizacje w kompilatorze w oparciu o wyniki pprofilowanie kodu PGO, i to jest to teraz kompilator używa narzędzi dewirtualizacji do zastąpienia wywołań pośrednich różnych metod z rozszerzonym wykonaniem bloków inline. Po włączeniu PGO dodana zmiana poprawiła wydajność większości programów o 2% do 14%.

W wersji Wybierz Windows, programy, które łączą lub ładują biblioteki Idź zbudowany z -buildmode=c-archiwum o -buildmode=c-shared można teraz korzystać z interfejsu API rejestrowania zdarzeń systemu Windows (ETW). poprzez nowe pakiety czas wykonania/śledzenie y hak śledzący, które implementują protokół gromadzenia śladów zdarzeń Go jako dostawca ETW.

Z innych wyróżniających się zmian:

  • Polecenie idź przetestować - przykryj teraz drukuje podsumowania zasięgu dla objętych pakietów, które nie mają własnych plików testowych.
  • OS/exec, dodano możliwość definiowania atrybutów kontekstu, umożliwiając ustawienie takich wartości jak katalog roboczy, zmienne środowiskowe i deskryptor pliku wejścia/wyjścia dla wykonywanych poleceń.
  • Zoptymalizowane zarządzanie pamięcią w czasie wykonywania, co skutkuje wzrostem wydajności o 1-3% i zmniejszeniem zużycia pamięci o 1% w przypadku większości aplikacji.
  • El Paquete sieć/http, funkcja została dodana ZamknijIdleConnections do klienta HTTP, co zamyka wszystkie nieużywane połączenia, z których ostatnio korzystał klient
  • Do kompilatora dodano ulepszoną eksperymentalną implementację (GOEXPERIMENT=newinliner) mechanizmu wstawiania wywołań, który wykorzystuje heurystyki do oddzielania ważnych operacji od nieistotnych.
  • Pakiet został dodany » matematyka/rand/v2 » do biblioteki standardowej, która oferuje bardziej spójne API i wykorzystuje szybsze algorytmy do generowania liczb pseudolosowych.
  • El Paquete net/http.ServeMux Dodano możliwość określania metod i masek w szablonach.

Wreszcie, jeśli jesteś chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.