Vai a lingua di prugrammazione versione 1.13

Intruduttu liberazione di lingua di prugrammazione Andà 1.13, chì hè sviluppatu da Google cù a participazione di a cumunità cum'è una soluzione hibrida chì combina l'altu rendiment di e lingue compilate cù i vantaghji di e lingue di scrittura cum'è a facilità di scrittura di codice, a velocità di sviluppu è a prutezzione di l'errore. Codice di prughjettu distribuitu da sottu a licenza BSD.

A sintassi di Go hè basatu annantu à elementi familiari di a lingua C cù qualchi prestiti da a lingua Python. A lingua hè abbastanza cuncisa, ma u codice hè faciule da leghje è capisce. U codice Go hè compilatu in eseguibili binari autonomi chì funzionanu in modu nativu senza aduprà una macchina virtuale (profiling, debugging, è altri sottosistemi di rilevazione di prublemi di runtime sò integrati cum'è cumpunenti runtime), chì permette di ottene prestazioni paragunabili à i prugrammi C.

U prugettu hè inizialmente sviluppatu cun un ochju nantu à a prugrammazione multi-threaded è l'operazione efficiente nantu à i sistemi multi-core, cumprese i mezi implementati à u livellu di l'operatore per l'urganizazione di l'informatica parallela è l'interazzione trà i metudi paralleli. A lingua furnisce ancu una prutezzione integrata contr'à l'overruns di blocchi di memoria allocati è furnisce a capacità di utilizà u cullettore di basura.

menu innovazioniintroduttu in a versione Go 1.13:

  • U pacchettu crypto / tls hà u supportu di protokollu attivatu per automaticamente TLS 1.3. Aggiuntu novu pacchettu "crypto/ed25519" cù supportu per e firme digitali Ed25519;
  • Aghjunghje supportu per novi prefissi letterali numerichi per definisce numeri binari (per esempiu, 0b101), ottale (0o377), imaginariu (2.71828i) è in virgule flottante esadecimale (0x1p-1021), è a capacità di utilizà u caratteru "_" per separà visualmente i numeri. in gran numaru (1_000_000);
  • A restrizzioni à l'usu di solu cuntaturi senza firmatu in l'operazioni di shift hè stata eliminata, chì evita cunversioni innecessarii à u tipu uint prima di utilizà l'operatori "‹‹" è "››";
  • Aghjunghje supportu per a piattaforma Illumos (GOOS = illuminamos). A cumpatibilità cù a piattaforma Android 10 hè stata assicurata I requisiti per e versioni minimu di FreeBSD (11.2) è macOS (10.11 "El Capitan") sò stati aumentati.
  • Sviluppu cuntinuatu di u novu sistema di moduli, chì pò esse usatu cum'è alternativa à GOPATH. A cuntrariu di i piani annunziati prima in Go 1.13, stu sistema ùn hè micca attivatu per difettu è richiede l'attivazione per mezu di a variabile GO111MODULE=on o l'usu di un cuntestu in quale i moduli sò applicati automaticamente. U novu sistema di moduli presenta un supportu di versione integrata, capacità di consegna di pacchetti, è una gestione di dependenza mejorata. Cù i moduli, i sviluppatori ùn sò più ligati à travaglià in un arbre GOPATH, ponu definisce esplicitamente dipendenze versionate è creanu custruzzioni ripetibili.

    A cuntrariu di e versioni precedenti, l'applicazione automatica di u novu sistema ora funziona quandu un schedariu go.mod hè presente in u repertoriu di travagliu attuale o in u repertoriu parent quandu eseguisce u cumandamentu go, ancu quandu hè in u cartulare GOPATH / src. Nuvelle variabili di l'ambienti sò state aghjunte: GOPRIVATE, chì definisce i percorsi di moduli accessibili publicamente, è GOSUMDB, chì specifica i paràmetri d'accessu à a basa di dati di checksum per i moduli chì ùn sò micca listati in u schedariu go.sum;

  • U cumandamentu "vai" per difettu carica i moduli è verifica a so integrità utilizendu u specchiu di u modulu è a basa di dati di checksum mantenuta da Google (proxy.golang.org, sum.golang.org è index.golang.org);
  • U supportu solu per i pacchetti binari hè statu discontinuatu à custruisce un pacchettu in u modu "//go: binary-only-package" avà risultatu in un errore;
  • Aghjunghje supportu per u suffissu "@patch" à u cumandamentu "go get", chì indica chì u modulu deve esse aghjurnatu à l'ultima versione di mantenimentu, ma senza cambià a versione maiò o minore attuale;
  • Quandu ritruvà i moduli da i sistemi di cuntrollu di fonti, u cumandamentu "vai" avà eseguisce un verificatu supplementu nantu à a stringa di versione, pruvatu à currisponde à i numeri di pseudo-versione cù metadata da u repository;
  • Supportu aghjuntu ispezione di errore (wrapping d'errore) per mezu di a creazione di wrappers chì permettenu l'usu di gestori di errore standard. Per esempiu, un sbagliu "e" pò esse impannillatu intornu à l'errore "w" furnisce un metudu Svolge, riturnendu "w". I dui errori "e" è "w" sò dispunibuli in u prugramma è e decisioni sò fatti nantu à l'errore "w", ma "e" furnisce un cuntestu supplementu à "w" o l'interpreta in modu diversu;
  • U funziunamentu di i cumpunenti di runtime hè statu ottimizatu (un aumentu di velocità finu à u 30% hè statu nutatu) è un ritornu più aggressivu di memoria à u sistema operatore hè statu implementatu (prima, a memoria hè stata restituita dopu à cinque o più minuti, ma avà immediatamente. dopu à riduzzione di a dimensione di u munzeddu).

Source: opennet.ru

Add a comment