Go programazio hizkuntzaren bertsioa 1.16

Go 1.16 programazio-lengoaiaren bertsioa aurkezten da, Google-k komunitatearen parte-hartzearekin garatzen ari dena, konpilatutako lengoaien errendimendu altua konpilatutako lengoaien errendimendu altua eta erraztasuna bezalako scripting-lengoaiekin konbinatzen dituen soluzio hibrido gisa. kodea idaztea, garapen azkarra eta akatsen babesa. Proiektuaren kodea BSD lizentziapean banatzen da.

Go-ren sintaxia C hizkuntzaren elementu ezagunetan oinarritzen da, Python hizkuntzaren mailegu batzuekin. Hizkuntza nahiko zehatza da, baina kodea irakurtzeko eta ulertzeko erraza da. Go kodea makina birtual bat erabili gabe natiboki exekutatzen diren fitxategi exekutagarri bitar bereizietan biltzen da (profilak, arazketa eta beste exekuzio-arazoak hautemateko azpisistemak exekuzio-denborako osagai gisa integratuta daude), eta horrek C programen pareko errendimendua lortzeko aukera ematen du.

Proiektua hasiera batean hari anitzeko programazioan eta nukleo anitzeko sistemen funtzionamendu eraginkorrari begira garatu da, operadore mailan inplementatutako bitartekoak eskaintzea barne, konputazio paraleloa eta paraleloki exekutatutako metodoen arteko elkarrekintza antolatzeko. Lengoaiak esleitutako memoria blokeen gainditzeen aurkako babes integratua eskaintzen du eta zabor biltzailea erabiltzeko gaitasuna eskaintzen du.

Go 1.16 bertsioan sartutako funtsezko berrikuntzak:

  • Kapsulatutako paketea gehitu da, fitxategi eta direktorio arbitrarioak programan txertatzeko tresnak eskaintzen dituena. "//go: embed" zuzentarau berria eskaintzen da konpilazio garaian txertatu beharreko fitxategiak zehazteko. Adibidez, kodean "//go:embed test.txt" iruzkina zehaztu eta "var f embed.FS" aldagaia jarraipen gisa deklaratzeak test.txt fitxategia txertatuko du eta aukera izango da. "f" deskribatzailearen bidez sartzea. Era berean, lanerako beharrezkoak diren baliabideak edo balio indibidualak dituzten fitxategiak txertatu ditzakezu, adibidez, bertsio.txt fitxategitik "s" kate aldagaia lortzeko, zehaztu dezakezu: inportatu _ "kapsulatu" // go:embed version.txt var s string print (k)
  • Lehenetsiak orain modulu sistema berri bat erabiltzea eskatzen du GOPATH-en oinarritutako mendekotasunen kudeaketa ordezkatzen duen bertsioa integratua duen euskarria duena. GO111MODULE ingurune-aldagaia "aktibatuta" ezarrita dago lehenespenez, eta moduluen modua erabiltzen da laneko edo gurasoen direktorioan go.mod fitxategi bat egon arren. Modu berrian, "go build" eta "go test" bezalako eraikitze-komandoek ez dituzte go.mod eta go.sum-en edukia aldatzen, "go install"-ek bertsioak zehaztutako argumentuak prozesatzen dituen bitartean ("joan instalatu adibide.com/[posta elektroniko bidez babestua]"). Portaera zaharra itzultzeko, aldatu GO111MODULE "auto"ra. Garatzaileen % 96 dagoeneko modulu sistema berrira aldatu dela nabarmentzen da.
  • Lokatzailea optimizatu da. Proiektu handietarako, lotzea % 20-25 azkarragoa da orain eta % 5-15 memoria gutxiago behar du.
  • Konpilatzaileak lineako funtzioen hedapenerako euskarria gehitzen du 'for' begizten, metodo-balioen eta 'type switch' konstruktuen definizio laburtu batekin.
  • Apple M1 ARM txip berriarekin hornitutako Apple sistemetarako laguntza gehitu da. Netbsd/arm64 eta openbsd/mips64 atakak gehitu dira NetBSD 64 biteko ARM-n eta OpenBSD MIPS64 sistemetan laguntzarekin. Cgo eta "-buildmode=pie" modurako laguntza gehitu da linux/riscv64 atakan.
  • X87 konpilazio modurako laguntza kendu egin da (GO386=387). SSE2 argibiderik gabeko prozesadoreentzako laguntza eskuragarri dago orain "GO386=softfloat" programaren moduaren bidez.

Gainera, Dart 2.12 lengoaiaren beta bertsioa probatzen hasi dela nabarmendu daiteke, zeinetan segurtasun modu nulua egonkortu den, eta horrek balio definitu eta Null gisa ezarrita ez duten aldagaiak erabiltzeko saiakerek eragindako kraskatzeak saihestuko ditu. Modu horrek esan nahi du aldagaiek ezin dutela zehaztu gabeko baliorik izan, esplizituki nulu gisa ezartzen ez badira. Moduak aldagai motak zorrotz hartzen ditu kontuan, eta horri esker, konpilatzaileak optimizazio gehigarriak aplika ditzake. Mota bat etortzea konpilazio garaian egiaztatzen da, adibidez, "Null" balioa esleitzen saiatzen bazara egoera zehaztugaberik adierazten ez duen aldagai bati, adibidez, "int", errore bat bistaratuko da.

Iturria: opennet.ru

Gehitu iruzkin berria