Go Programméiersprooch Verëffentlechung 1.13

Agefouert Programméierungssprooch Verëffentlechung Go 1.13, déi vu Google mat der Participatioun vun der Gemeinschaft als Hybridléisung entwéckelt gëtt, déi d'Héichleistung vu kompiléierte Sproochen kombinéiert mat de Virdeeler vu Skriptsproochen wéi Einfachheet vum Code ze schreiwen, d'Geschwindegkeet vun der Entwécklung a Feelerschutz. Projet Code verdeelt duerch ënner der BSD Lizenz.

Dem Go seng Syntax baséiert op vertraute Elementer vun der C Sprooch mat e puer Prêten aus der Python Sprooch. D'Sprooch ass zimmlech präzis, awer de Code ass einfach ze liesen a verstoen. Go Code ass a Stand-alone binär Ausführbar kompiléiert déi nativ lafen ouni eng virtuell Maschinn ze benotzen (Profiling, Debugging, an aner Runtime Problem Detectioun Subsystemer sinn integréiert wéi Runtime Komponente), wat Iech erlaabt Leeschtung vergläichbar mat C Programmer z'erreechen.

De Projet ass ufanks entwéckelt mat engem Auge fir Multi-threaded Programméierung an effizient Operatioun op Multi-Core Systemer, dorënner d'Bedreiwer-Niveau Mëttele fir d'Organisatioun vun parallele Informatik an Interaktioun tëscht parallel ausgefouerten Methoden z'organiséieren. D'Sprooch bitt och e gebaute Schutz géint iwwerallokéiert Erënnerungsblocken a bitt d'Fäegkeet fir e Gerempels ze benotzen.

Haaptstrooss Innovatiounenagefouert an der Go 1.13 Verëffentlechung:

  • De Krypto/tls Package huet Protokoll Ënnerstëtzung als Standard aktivéiert TLS 1.3. Neie Package "crypto/ed25519" bäigefüügt mat Ënnerstëtzung fir Ed25519 digital Ënnerschrëften;
  • Zousätzlech Ënnerstëtzung fir nei numeresch literal Präfixe fir binär Zuelen ze definéieren (zB 0b101), oktal (0o377), imaginär (2.71828i) an hexadezimal Schwiemmpunkt (0x1p-1021), an d'Fäegkeet den "_" Charakter ze benotzen fir Zifferen visuell ze trennen a groussen Zuelen (1_000_000);
  • D'Restriktioun fir nëmmen net ënnerschriwwene Géigespiller an der Verréckelung Operatiounen ze benotzen gouf geläscht, wat onnéideg Konversiounen op den Uint Typ vermeit ier Dir d'"‹‹" an "››" Bedreiwer benotzt;
  • Zousätzlech Ënnerstëtzung fir d'Illumos Plattform (GOOS = illumos). D'Kompatibilitéit mat der Android 10 Plattform ass gesuergt.D'Ufuerderunge fir d'Mindestversioune vu FreeBSD (11.2) a macOS (10.11 "El Capitan") goufen erhéicht.
  • Weider Entwécklung vum neie Modulsystem, deen als Alternativ zu GOPATH benotzt ka ginn. Am Géigesaz zu virdrun ugekënnegt Pläng am Go 1.13, ass dëse System net als Standard aktivéiert a erfuerdert Aktivéierung duerch d'GO111MODULE=on Variabel oder d'Benotzung vun engem Kontext an deem Moduler automatesch applizéiert ginn. Den neie Modulsystem huet integréiert Versiounssupport, Package Liwwerungsfäegkeeten a verbessert Ofhängegkeetsmanagement. Mat Moduler sinn d'Entwéckler net méi gebonnen fir an engem GOPATH Bam ze schaffen, kënnen explizit Versiounsabhängegkeeten definéieren a widderhuelend Builds erstellen.

    Am Géigesaz zu de fréiere Verëffentlechungen funktionnéiert d'automatesch Uwendung vum neie System elo wann eng go.mod-Datei am aktuellen Aarbechtsverzeechnes oder Elterenverzeechnes präsent ass wann Dir de go Kommando leeft, och wann et am GOPATH / src Verzeichnis ass. Nei Ëmweltvariablen goufen dobäigesat: GOPRIVATE, déi d'Weeër vun ëffentlech zougängleche Moduler definéiert, an GOSUMDB, déi Zougangsparameter fir d'Checksum-Datebank fir Moduler spezifizéiert, déi net an der go.sum-Datei opgezielt sinn;

  • De Kommando "goen" lued standardiséiert Moduler a kontrolléiert hir Integritéit mat der Modulspigel a Checksum-Datebank, déi vu Google erhale gëtt (proxy.golang.org, sum.golang.org an index.golang.org);
  • Ënnerstëtzung fir nëmme binär Packagen gouf gestoppt; e Package am "//go: binär-nëmmen-Package" Modus ze bauen resultéiert elo zu engem Feeler;
  • Ënnerstëtzung fir den "@patch" Suffix op de Kommando "go get" bäigefüügt, wat beweist datt de Modul op déi lescht Maintenance Verëffentlechung aktualiséiert gëtt, awer ouni déi aktuell grouss oder kleng Versioun z'änneren;
  • Wann Dir Moduler aus Quellkontrollsystemer zréckhëlt, mécht de Kommando "go" elo eng zousätzlech Kontroll op der Versiounsstring, a probéiert Pseudo-Versiounsnummeren mat Metadaten aus dem Repository ze passen;
  • Zousätzlech Ënnerstëtzung Feeler Inspektioun (Feeler wrapping) duerch d'Schafung vun wrappers datt de Gebrauch vun Standard Feeler Handler erlaben. Zum Beispill, Fehler "e" kann ëm de Feeler "w" gewéckelt ginn andeems Dir eng Method ubitt Auszepaken, zréck "w". Souwuel Feeler "e" an "w" sinn am Programm sinn an Décisioune sinn baséiert op Feeler "w", mä "e" gëtt zousätzlech Kontext fir "w" oder interpretéiert et anescht;
  • D'Performance vun de Runtime Komponente gouf optimiséiert (eng Geschwindegkeetserhéijung vu bis zu 30% gouf bemierkt) an e méi aggressive Retour vum Erënnerung un de Betribssystem gouf ëmgesat (virdrun gouf d'Erënnerung no fënnef oder méi Minutten zréckginn, awer elo direkt no der Reduktioun vun der Koupgréisst).

Source: opennet.ru

Setzt e Commentaire