Kort tid etter 6 måneder etter lanseringen av den forrige versjonen, ble ny versjon av det populære programmeringsspråket Gå 1.21 og i denne nye versjonen nye funksjoner lagt til til språket, samt PGO, kompatibilitet med tidligere versjoner og mer.
For de som ikke vet om Go, må jeg fortelle deg at dette erDet er et programmeringsspråk som utvikles av Google med deltakelse av fellesskapet som en hybridløsning som kombinerer den høye ytelsen til kompilerte språk med fordeler som skriptspråk som enkel skriving av kode, hastighet på utvikling og beskyttelse mot feil.
De viktigste nye funksjonene i Go 1.21
Med utgivelsen av denne nye versjonen av Go 1.21, en liten endring er introdusert i nummereringen av versjoner, nummereringen var allerede håndtert i skjemaet Go 1.x for å referere til både den globale versjonen av Go-språket og familien av versjoner, samt den første versjonen av denne familien. Fra og med Go 1.21 er den første versjonen nå Go 1.X.0. Du kan få mer informasjon om hvordan den nye Go-nummereringen vil bli håndtert på følgende lenke.
For den delen av endringene som skiller seg ut fra denne nye utgivelsen kan vi finne den implementerte støtten for optimaliseringer basert på resultatene av kodeprofilering (PGO – Profilveiledet optimalisering), siden den i forrige versjon bare var tilgjengelig som forhåndsvisning og nå i Go 1.21 er den tilgjengelig for generell bruk.
En annen endring som skiller seg ut i denne nye versjonen er at implementert en eksperimentell port for å kompilere forberedelseskoden WebAssembly ved hjelp av WASI API (WebAssembly System Interface) for å gi uavhengig utførelse.
I tillegg til dette bemerkes det også at de la til innebygde min og maks funksjoner for å velge minste/største verdi, samt slettefunksjonen for å fjerne eller tilbakestille alle elementer på kartet eller bryte strukturer.
Det bemerkes også at i denne nye versjonen, go-verktøyet er bakover- og foroverkompatibelt fra andre versjoner av Go-språket, slik at du kan bruke gamle verktøy til å lage ny kode, og omvendt. Når Go må gjøre denne typen atferdsendring, velger den nå mellom gammel og ny atferd basert på arbeidsområdet.
På den annen side kan vi også finne det lagt til eksperimentell støtte for ny semantikk for variabel prosessering i looper, som gjør det mulig å unngå typiske feil på grunn av spesifikk oppførsel ved bruk av lukkinger og koroutiner i iterasjoner. Den nye semantikken involverer opprettelsen for hver iterasjon av løkken av en separat forekomst av variabelen deklarert i "for"-løkken ved å bruke ":="-operatoren.
De er også laget forbedringer av typeslutning i funksjoner generiske funksjoner designet for å fungere med flere typer samtidig og det er at nå kan en funksjon kalles med argumenter som i seg selv er generiske funksjoner, i tillegg til at typeinferens nå også vurderer metoder når man tildeler en verdi til et grensesnitt og den typeslutningen er nå nøyaktig når den samsvarer med tilsvarende typer i oppgaver
Av andre endringer som skiller seg ut, kan vi finne de nye pakkene lagt til standardbiblioteket:
- log/slog: funksjoner for å skrive strukturerte logger.
- skiver: typiske operasjoner med skiver av alle typer.
- kart: nyttige operasjoner på oppgaver (kart) med alle slags taster og elementer.
cmp: funksjoner for å sammenligne bestilte verdier. - Kompilatoren ble gjenoppbygd med inkludering av PGO-optimaliseringer, som gjorde det mulig å fremskynde kompileringen av programmer med 2-4%.
- Søppelsamleren er optimalisert for å redusere ventetiden med opptil 40 % i enkelte applikasjoner.
- Redusert overhead ved sporing av kode med runtime/trace-pakken på amd64- og arm64-systemer.
Til slutt, hvis du er det interessert i å vite mer om det, kan du sjekke detaljene i følgende lenke.