Go programmeringsspråk version 1.13

Introducerad programspråk release Gå 1.13, som utvecklats av Google med deltagande av communityn som en hybridlösning som kombinerar den höga prestandan hos kompilerade språk med fördelarna med skriptspråk, såsom enkel kod att skriva, utvecklingshastighet, och felskydd. Projektkod levererad av under BSD-licensen.

Syntaxen för Go är baserad på de välbekanta elementen i C-språket med några lån från Python-språket. Språket är ganska kortfattat, men koden är lätt att läsa och förstå. Go-kod kompileras till fristående binära körbara filer som körs inbyggt utan att använda en virtuell maskin (profilering, felsökning och andra delsystem för upptäckt av run-time problem är integrerade som körtidskomponenter), vilket gör att du kan uppnå prestanda som är jämförbar med program på C-språket.

Projektet är initialt utvecklat med sikte på flertrådad programmering och effektiv drift på flerkärniga system, inklusive tillhandahållande av medel implementerade på operatörsnivå för att organisera parallell beräkning och interaktion mellan parallellt exekverade metoder. Språket ger också inbyggt skydd mot överskridningar av tilldelade minnesblock och ger möjlighet att använda sopsamlaren.

Den huvudsakliga innovationer, introducerad i Go 1.13-versionen:

  • crypto/tls-paketet har protokollstöd aktiverat som standard TLS 1.3. Lade till nytt paket "crypto/ed25519" med stöd för Ed25519 digitala signaturer;
  • Lagt till stöd för nya numeriska bokstavliga prefix för att definiera binära tal (t.ex. 0b101), oktala (0o377), imaginära (2.71828i) och hexadecimala flyttal (0x1p-1021), och möjligheten att använda tecknet "_" för att visuellt separera siffror i stort antal (1_000_000);
  • Begränsningen att endast använda osignerade räknare i skiftoperationer har tagits bort, vilket undviker onödiga omvandlingar till uint-typen innan du använder operatorerna “‹‹” och “››”;
  • Lade till stöd för Illumos-plattformen (GOOS=illumos). Kompatibilitet med Android 10-plattformen har säkerställts. Kraven på minimiversionerna av FreeBSD (11.2) och macOS (10.11 “El Capitan”) har höjts.
  • Fortsatt utveckling av det nya modulsystemet, som kan användas som ett alternativ till GOPATH. I motsats till tidigare annonserade planer i Go 1.13 är detta system inte aktiverat som standard och kräver aktivering genom variabeln GO111MODULE=on eller användning av ett sammanhang där moduler appliceras automatiskt. Det nya modulsystemet har integrerat versionsstöd, paketleveransmöjligheter och förbättrad beroendehantering. Med moduler är utvecklare inte längre bundna till att arbeta inom ett GOPATH-träd, de kan uttryckligen definiera versionsberoenden och skapa repeterbara builds.

    Till skillnad från tidigare utgåvor fungerar automatisk tillämpning av det nya systemet nu när en go.mod-fil finns i den aktuella arbetskatalogen eller överordnade katalogen när du kör kommandot go, inklusive när den finns i katalogen GOPATH/src. Nya miljövariabler har lagts till: GOPRIVATE, som definierar sökvägarna till allmänt tillgängliga moduler, och GOSUMDB, som specificerar åtkomstparametrar till kontrollsummadatabasen för moduler som inte är listade i go.sum-filen;

  • Kommandot "go" laddar som standard moduler och kontrollerar deras integritet med hjälp av modulspegeln och checksummadatabasen som underhålls av Google (proxy.golang.org, sum.golang.org och index.golang.org);
  • Stödet för endast binära paket har upphört, att bygga ett paket i läget "//go:binärt-bara-paket" resulterar nu i ett fel;
  • Lade till stöd för suffixet "@patch" till kommandot "go get", vilket indikerar att modulen ska uppdateras till den senaste underhållsversionen, men utan att ändra den aktuella större eller mindre versionen;
  • När moduler hämtas från källkontrollsystem utför kommandot "go" nu en ytterligare kontroll av versionssträngen, och försöker matcha pseudoversionsnummer med metadata från förvaret;
  • Lagt till stöd felbesiktning (felomslag) genom skapandet av omslag som tillåter användning av standardfelhanterare. Till exempel, fel "e" kan lindas runt felet "w" genom att tillhandahålla en metod Packa upp, returnerar "w". Både fel "e" och "w" är tillgängliga i programmet och beslut fattas baserat på fel "w", men "e" ger ytterligare sammanhang till "w" eller tolkar det annorlunda;
  • Prestanda för runtime-komponenter har optimerats (en hastighetsökning på upp till 30 % har noterats) och en mer aggressiv återgång av minne till operativsystemet har implementerats (tidigare returnerades minne efter fem eller fler minuter, men nu omedelbart efter att ha minskat högstorleken).

Källa: opennet.ru

Lägg en kommentar