Rilaxx tal-lingwa ta' programmar Go 1.16

Huwa ppreżentat ir-rilaxx tal-lingwa ta 'programmar Go 1.16, li qed tiġi żviluppata minn Google bil-parteċipazzjoni tal-komunità bħala soluzzjoni ibrida li tgħaqqad il-prestazzjoni għolja ta' lingwi kkumpilati ma 'vantaġġi bħal lingwi ta' scripting bħall-faċilità tal-kitba tal-kodiċi , veloċità ta 'żvilupp u protezzjoni ta' żball. Il-kodiċi tal-proġett huwa mqassam taħt il-liċenzja BSD.

Is-sintassi ta' Go hija bbażata fuq elementi familjari tal-lingwa C b'xi self mil-lingwa Python. Il-lingwa hija pjuttost konċiża, iżda l-kodiċi huwa faċli biex jinqara u jinftiehem. Il-kodiċi Go huwa miġbur f'fajls eżekutibbli binarji waħedhom li jaħdmu b'mod nattiv mingħajr ma tuża magna virtwali (profili, moduli ta 'debugging, u sottosistemi oħra ta' skoperta ta 'problemi ta' runtime huma integrati bħala komponenti ta 'runtime), li jippermetti prestazzjoni komparabbli ma' programmi C.

Il-proġett huwa inizjalment żviluppat b'attenzjoni għall-ipprogrammar multi-thread u tħaddim effiċjenti fuq sistemi multi-core, inkluż il-provvista ta 'mezzi fil-livell tal-operatur għall-organizzazzjoni tal-kompjuters paralleli u l-interazzjoni bejn metodi eżegwiti b'mod parallel. Il-lingwa tipprovdi wkoll protezzjoni integrata kontra blokki tal-memorja allokati żżejjed u tipprovdi l-abbiltà li tuża garbage collector.

Karatteristiċi ġodda ewlenin introdotti f'Go 1.16:

  • Żid il-pakkett embed, li jipprovdi għodod għall-inkorporazzjoni ta 'fajls u direttorji arbitrarji fil-programm. Direttiva ġdida "//go:embed" hija pprovduta biex tispeċifika fajls li għandhom jiġu inkorporati fil-ħin tal-kompilazzjoni. Pereżempju, li tispeċifika “//go:embed test.txt” fil-kumment tal-kodiċi u mbagħad tiddikjara l-varjabbli “var f embed.FS” twassal għall-inkorporazzjoni tal-fajl test.txt u l-abbiltà li taċċessah permezz tal-“ f” deskrittur. B'mod simili, tista 'tintegra fajls b'riżorsi jew valuri individwali ta' ċertu tip meħtieġ għax-xogħol, pereżempju, biex tikseb il-varjabbli ta 'sekwenza "s" mill-fajl version.txt, tista' tispeċifika: importazzjoni _ "embed ” //go:embed version.txt var s string print(i)
  • B'mod awtomatiku, is-sistema l-ġdida tal-moduli b'appoġġ għall-verżjoni integrat issa hija meħtieġa, li tissostitwixxi l-ġestjoni tad-dipendenza bbażata fuq GOPATH. Il-varjabbli tal-ambjent GO111MODULE issa hija ssettjata għal "on" b'mod awtomatiku u l-modalità tal-moduli tintuża irrispettivament mill-preżenza ta 'fajl go.mod fid-direttorju tax-xogħol jew parent. Fil-mod il-ġdid, tibni kmandi bħal "go build" u "go test" ma jbiddlux il-kontenut ta 'go.mod u go.sum, u l-kmand "go install" jipproċessa argumenti tal-verżjoni ("go install example.com/[protett bl-email]"). Biex tirritorna l-imġieba l-antika, ibdel GO111MODULE għal "auto". Huwa nnutat li 96% tal-iżviluppaturi diġà qalbu għas-sistema l-ġdida tal-moduli.
  • Il-linker ġie ottimizzat. Għal proġetti kbar, it-tqassim issa huwa 20-25% aktar mgħaġġel u jeħtieġ 5-15% inqas memorja.
  • Il-kompilatur żied appoġġ għall-espansjoni inline tal-funzjonijiet b'definizzjonijiet imqassra ta '"għal" loops, valuri ta' metodu u kostruzzjonijiet ta ''type switch'.
  • Appoġġ miżjud għal sistemi Apple mgħammra biċ-ċippa l-ġdida Apple M1 ARM. Miżjud portijiet netbsd/arm64 u openbsd/mips64 b'appoġġ għal NetBSD fuq ARM 64-bit u OpenBSD fuq sistemi MIPS64. Appoġġ miżjud għal cgo u l-mod "-buildmode = pie" mal-port linux/riscv64.
  • L-appoġġ għall-mod ta' kumpilazzjoni x87 twaqqaf (GO386=387). L-appoġġ għall-proċessuri SSE2 mingħajr struzzjonijiet issa huwa disponibbli permezz tal-mod tas-softwer "GO386=softfloat".

Barra minn hekk, nistgħu ninnotaw il-bidu tal-ittestjar tar-rilaxx beta tal-lingwa Dart 2.12, li fiha l-mod sikur għall-użu tal-valur "Null" (sigurtà null) ġie stabbilizzat, li se jgħin biex jiġu evitati ħabtiet ikkawżati minn tentattivi biex jintużaw varjabbli li tagħhom. valur huwa mhux definit u ssettjat għal "Null". Il-mod jimplika li l-varjabbli ma jistax ikollhom valuri nulli sakemm ma jiġux assenjati espliċitament il-valur null. Il-mod tirrispetta b'mod strett it-tipi varjabbli, li jippermetti lill-kompilatur japplika ottimizzazzjonijiet addizzjonali. Il-konformità tat-tip tiġi ċċekkjata fil-ħin tal-kompilazzjoni, pereżempju, jekk tipprova tassenja l-valur "Null" għal varjabbli b'tip li ma jimplikax stat mhux definit, bħal "int", se jintwera żball.

Sors: opennet.ru

Żid kumment