Gean programmeartaal release 1.16

De frijlitting fan 'e Go 1.16 programmeartaal wurdt presintearre, dy't wurdt ûntwikkele troch Google mei de partisipaasje fan' e mienskip as in hybride oplossing dy't de hege prestaasjes fan kompilearre talen kombinearret mei sokke foardielen fan skripttalen as gemak fan skriuwen fan koade , snelheid fan ûntwikkeling en flaterbeskerming. De projektkoade wurdt ferspraat ûnder de BSD-lisinsje.

De syntaksis fan Go is basearre op bekende eleminten fan 'e C-taal mei guon lienen út' e Python-taal. De taal is frij beknopt, mar de koade is maklik te lêzen en te begripen. Go-koade is kompilearre yn stand-alone binêre útfierbere bestannen dy't natuerlik rinne sûnder in firtuele masine te brûken (profilearjen, debuggen modules, en oare subsystemen foar deteksje fan runtimeproblemen binne yntegreare as runtime-komponinten), wêrtroch prestaasjes fergelykber binne mei C-programma's.

It projekt is yn earste ynstânsje ûntwikkele mei it each op multi-threaded programmearring en effisjinte operaasje op multi-core systemen, ynklusyf it jaan fan operator-nivo middels foar it organisearjen fan parallel computing en ynteraksje tusken parallel útfierd metoaden. De taal biedt ek ynboude beskerming tsjin oerallokearre ûnthâldblokken en jout de mooglikheid om in garbage collector te brûken.

Key nije funksjes yntrodusearre yn Go 1.16:

  • It ynbêdepakket is tafoege, en biedt ark foar it ynbêdzjen fan willekeurige bestannen en mappen yn it programma. In nije rjochtline "//go:embed" wurdt levere om bestannen op te jaan dy't ynbêde wurde moatte op it kompilearjen. Bygelyks, spesifisearje "//go: embed test.txt" yn de koade kommentaar en dan ferklearje de fariabele "var f embed.FS" sil liede ta it ynbêde fan de test.txt triem en de mooglikheid om tagong ta it fia de " f" beskriuwing. Op in fergelykbere manier kinne jo bestannen ynbêde dy't nedich binne foar wurk mei boarnen of yndividuele wearden fan in bepaald type, bygelyks om de tekenrige fariabele "s" te krijen fan 'e version.txt-bestân, kinne jo opjaan: ymportearje _ "embed ” //go:embed version.txt var s string print (s)
  • Standert is it nije modulesysteem mei yntegreare ferzjestipe no ferplicht, ferfangt GOPATH-basearre ôfhinklikensbehear. De omjouwingsfariabele GO111MODULE is no standert op "oan" ynsteld en modulemodus wurdt brûkt nettsjinsteande de oanwêzigens fan in go.mod-bestân yn 'e wurk- of âldermap. Yn 'e nije modus feroarje boukommando's lykas "go build" en "go test" de ynhâld fan go.mod en go.sum net, en it kommando "go install" ferwurket ferzje-arguminten ("go install example.com/[e-post beskerme]"). Om it âlde gedrach werom te jaan, feroarje GO111MODULE nei "auto". It wurdt opmurken dat 96% fan ûntwikkelders al oerstapt binne nei it nije modulesysteem.
  • De linker is optimalisearre. Foar grutte projekten is yndieling no 20-25% rapper en fereasket 5-15% minder ûnthâld.
  • De kompilator hat stipe tafoege foar inline-útwreiding fan funksjes mei ôfkoarte definysjes fan "foar" loops, metoadewearden en 'type switch'-konstruksjes.
  • Stipe tafoege foar Apple-systemen útrist mei de nije Apple M1 ARM-chip. Netbsd/arm64- en openbsd/mips64-poarten tafoege mei stipe foar NetBSD op 64-bit ARM en OpenBSD op MIPS64-systemen. Stipe tafoege foar cgo en de "-buildmode = pie" modus oan de linux/riscv64-poarte.
  • Stipe foar x87-kompilaasjemodus is beëinige (GO386=387). Stipe foar SSE2-ynstruksjeleaze processors is no beskikber fia de softwaremodus "GO386=softfloat".

Derneist kinne wy ​​​​opmerke dat it begjin fan it testen fan 'e beta-release fan' e Dart 2.12-taal, wêryn de feilige modus foar it brûken fan de "Null" wearde (nul feiligens) is stabilisearre, wat sil helpe om crashes te foarkommen feroarsake troch besykjen om fariabelen te brûken wêrfan de wearde is net definiearre en ynsteld op "Null". De modus ymplisearret dat fariabelen gjin nulwearden kinne hawwe, útsein as se de wearde null eksplisyt wurde tawiisd. De modus respektearret fariabele typen strikt, wêrtroch de kompilator ekstra optimisaasjes kin tapasse. Typekonformiteit wurdt kontrolearre op kompilaasjetiid, bygelyks as jo besykje de wearde "Null" ta te jaan oan in fariabele mei in type dat gjin undefinieare steat ymplisearret, lykas "int", sil in flater werjûn wurde.

Boarne: opennet.ru

Add a comment