Go Programméiersprooch Verëffentlechung 1.16

D'Verëffentlechung vun der Go 1.16 Programméierungssprooch gëtt presentéiert, déi vu Google mat der Participatioun vun der Gemeinschaft als Hybridléisung entwéckelt gëtt, déi d'High Performance vu kompiléierte Sprooche kombinéiert mat sou Virdeeler vu Skriptsproochen wéi Einfachheet vum Code ze schreiwen , Vitesse vun Entwécklung a Feeler Schutz. De Projet Code gëtt ënner der BSD Lizenz verdeelt.

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 gëtt a Stand-alone binär ausführbar Dateien zesummegesat, déi natiirlech lafen ouni eng virtuell Maschinn ze benotzen (Profiling, Debugging Moduler, an aner Runtime Problem Detectioun Subsystemer sinn als Runtime Komponenten integréiert), wat d'Performance vergläichbar mat C Programmer erlaabt.

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.

Schlëssel nei Funktiounen agefouert an Go 1.16:

  • Den Embed Package bäigefüügt, deen Tools ubitt fir arbiträr Dateien a Verzeichnisser an de Programm z'integréieren. Eng nei "//go: embed" Direktiv gëtt zur Verfügung gestallt fir Dateien ze spezifizéieren déi an der Kompiléierungszäit agebonne ginn. Zum Beispill, spezifizéieren "//go: embed test.txt" am Code Kommentar an dann deklaréiert d'Variabel "var f embed.FS" féiert zu der Embedding vun der test.txt Datei an d'Fäegkeet et duerch de " f" Beschreiwung. Op eng ähnlech Manéier kënnt Dir Dateien déi néideg sinn fir d'Aarbecht mat Ressourcen oder eenzel Wäerter vun engem bestëmmten Typ embed, zum Beispill, fir d'Stringvariabel "s" aus der version.txt Datei ze kréien, kënnt Dir spezifizéieren: import _ "embed" " //go: embed version.txt var s string print (s)
  • Par défaut ass den neie Modulsystem mat integréierter Versiounssupport elo erfuerderlech, ersetzt GOPATH-baséiert Ofhängegkeetsmanagement. D'GO111MODULE Ëmfeld Variabel ass elo als Standard op "on" gesat a Moduler Modus gëtt benotzt onofhängeg vun der Präsenz vun enger go.mod Datei am Aarbechts- oder Elterenverzeichnis. Am neie Modus, bauen Kommandoen wéi "goen bauen" a "goen Test" änneren den Inhalt vu go.mod a go.sum net, an de Kommando "goen installéieren" veraarbecht Versiounsargumenter ("go install example.com/[Email geschützt]"). Fir dat alt Verhalen zréckzekommen, änneren GO111MODULE op "Auto". Et gëtt bemierkt datt 96% vun den Entwéckler schonn op den neie Modulsystem gewiesselt sinn.
  • De Linker gouf optimiséiert. Fir grouss Projeten ass de Layout elo 20-25% méi séier a erfuerdert 5-15% manner Erënnerung.
  • De Compiler huet Ënnerstëtzung fir Inline Expansioun vu Funktiounen bäigefüügt mat verkierzte Definitioune vu "fir" Loops, Methodwäerter an 'Typschalter' Konstruktiounen.
  • Zousätzlech Ënnerstëtzung fir Apple Systemer mat dem neien Apple M1 ARM Chip ausgestatt. Zousätzlech netbsd / arm64 an openbsd / mips64 Ports mat Ënnerstëtzung fir NetBSD op 64-Bit ARM an OpenBSD op MIPS64 Systemer. Zousätzlech Ënnerstëtzung fir cgo an den "-buildmode = pie" Modus op de Linux / riscv64 Hafen.
  • Ënnerstëtzung fir x87 Kompiléierungsmodus gouf gestoppt (GO386=387). Ënnerstëtzung fir SSE2 instruktiounslos Prozessoren ass elo verfügbar iwwer de "GO386=softfloat" Software Modus.

Zousätzlech kënne mir den Ufank vum Test vun der Beta Verëffentlechung vun der Dart 2.12 Sprooch notéieren, an där de séchere Modus fir den "Null" Wäert (Null Sécherheet) stabiliséiert gouf, wat hëlleft Crashen ze vermeiden verursaacht duerch Versuche Variabelen ze benotzen, deenen hir Wäert ass ondefinéiert an op "Null" gesat. De Modus implizéiert datt Variablen net null Wäerter kënnen hunn, ausser datt se explizit de Wäert null zougewisen ginn. De Modus respektéiert strikt variabelen Typen, wat de Compiler erlaabt zousätzlech Optimisatiounen z'applizéieren. Typ Konformitéit gëtt bei der Kompiléierungszäit iwwerpréift, zum Beispill, wann Dir probéiert de Wäert "Null" un eng Variabel mat engem Typ ze ginn, deen keen ondefinéierte Staat implizéiert, wéi "int", gëtt e Feeler ugewisen.

Source: opennet.ru

Setzt e Commentaire