Lëshimi i gjuhës programuese Go 1.16

Prezantohet lëshimi i gjuhës së programimit Go 1.16, e cila po zhvillohet nga Google me pjesëmarrjen e komunitetit si një zgjidhje hibride që kombinon performancën e lartë të gjuhëve të përpiluara me avantazhe të tilla të gjuhëve të skriptimit si lehtësia e shkrimit të kodit. , shpejtësia e zhvillimit dhe mbrojtja nga gabimet. Kodi i projektit shpërndahet nën licencën BSD.

Sintaksa e Go bazohet në elementë të njohur të gjuhës C me disa huazime nga gjuha Python. Gjuha është mjaft koncize, por kodi është i lehtë për t'u lexuar dhe kuptuar. Kodi Go përpilohet në skedarë të ekzekutueshëm binar të pavarur që funksionojnë në mënyrë origjinale pa përdorur një makinë virtuale (modulet e profilizimit, korrigjimit dhe nënsistemet e tjera të zbulimit të problemeve të kohës së ekzekutimit janë të integruara si komponentë të kohës së ekzekutimit), gjë që lejon performancë të krahasueshme me programet C.

Projekti është zhvilluar fillimisht duke pasur parasysh programimin me shumë fije dhe funksionimin efikas në sistemet me shumë bërthama, duke përfshirë sigurimin e mjeteve në nivel operatori për organizimin e llogaritjeve paralele dhe ndërveprimin midis metodave të ekzekutuara paralelisht. Gjuha ofron gjithashtu mbrojtje të integruar kundër blloqeve të kujtesës së tepërt dhe ofron mundësinë për të përdorur një grumbullues mbeturinash.

Karakteristikat kryesore të reja të prezantuara në Go 1.16:

  • U shtua paketa e embed, e cila ofron mjete pĂ«r futjen e skedarĂ«ve dhe drejtorive arbitrare nĂ« program. NjĂ« direktivĂ« e re "//go:embed" ofrohet pĂ«r tĂ« specifikuar skedarĂ«t qĂ« do tĂ« futen nĂ« kohĂ«n e pĂ«rpilimit. PĂ«r shembull, specifikimi "//go:embed test.txt" nĂ« komentin e kodit dhe mĂ« pas deklarimi i variablĂ«s "var f embed.FS" do tĂ« çojĂ« nĂ« futjen e skedarit test.txt dhe mundĂ«sinĂ« pĂ«r t'iu qasur atij pĂ«rmes " f” pĂ«rshkrues. NĂ« mĂ«nyrĂ« tĂ« ngjashme, mund tĂ« futni skedarĂ« me burime ose vlera individuale tĂ« njĂ« lloji tĂ« caktuar tĂ« nevojshĂ«m pĂ«r punĂ«, pĂ«r shembull, pĂ«r tĂ« marrĂ« variablin e vargut "s" nga skedari version.txt, mund tĂ« specifikoni: import _ "embed ” //go:embed version.txt var s print (s) vargu
  • Sistemi i ri i moduleve me mbĂ«shtetje tĂ« integruar tĂ« versionimit tani kĂ«rkohet si parazgjedhje, duke zĂ«vendĂ«suar menaxhimin e varĂ«sive tĂ« bazuara nĂ« GOPATH. Variabli i mjedisit GO111MODULE tani Ă«shtĂ« vendosur nĂ« "on" si parazgjedhje, dhe modaliteti i modulit pĂ«rdoret pavarĂ«sisht pranisĂ« sĂ« njĂ« skedari go.mod nĂ« direktorinĂ« e punĂ«s ose atĂ« prind. NĂ« modalitetin e ri, komandat e ndĂ«rtimit si "go build" dhe "go test" nuk modifikojnĂ« pĂ«rmbajtjen e go.mod dhe go.sum, dhe komanda "go install" pĂ«rpunon argumente specifike pĂ«r versionin ("go install example.com/cmd@v1.0.0"). PĂ«r t'u rikthyer nĂ« sjelljen e mĂ«parshme, ndryshoni GO111MODULE nĂ« "auto". VĂ«rehet se 96% e zhvilluesve kanĂ« migruar tashmĂ« nĂ« sistemin e ri tĂ« moduleve.
  • LidhĂ«si Ă«shtĂ« optimizuar. PĂ«r projektet e mĂ«dha, faqosja tani Ă«shtĂ« 20-25% mĂ« e shpejtĂ« dhe kĂ«rkon 5-15% mĂ« pak memorie.
  • PĂ«rpiluesi ka shtuar mbĂ«shtetje pĂ«r zgjerimin inline tĂ« funksioneve me pĂ«rkufizime tĂ« shkurtuara tĂ« sytheve "pĂ«r", vlerat e metodĂ«s dhe konstruksionet e 'ndĂ«rruesit tĂ« tipit'.
  • MbĂ«shtetje e shtuar pĂ«r sistemet Apple tĂ« pajisura me çipin e ri Apple M1 ARM. U shtuan porte netbsd/arm64 dhe openbsd/mips64 me mbĂ«shtetje pĂ«r NetBSD nĂ« ARM 64-bit dhe OpenBSD nĂ« sistemet MIPS64. U shtua mbĂ«shtetje pĂ«r cgo dhe modalitetin "-buildmode=pie" nĂ« portin linux/riscv64.
  • MbĂ«shtetja pĂ«r modalitetin e pĂ«rpilimit x87 Ă«shtĂ« ndĂ«rprerĂ« (GO386=387). MbĂ«shtetja pĂ«r procesorĂ«t pa udhĂ«zim SSE2 Ă«shtĂ« tani e disponueshme nĂ«pĂ«rmjet modalitetit tĂ« softuerit "GO386=softfloat".

Për më tepër, mund të vërejmë fillimin e testimit të lëshimit beta të gjuhës Dart 2.12, në të cilën është stabilizuar mënyra e sigurt për përdorimin e vlerës "Null" (siguria null), e cila do të ndihmojë në shmangien e përplasjeve të shkaktuara nga përpjekjet për të përdorur variabla të të cilëve vlera është e papërcaktuar dhe është vendosur në "Null". Modaliteti nënkupton që variablat nuk mund të kenë vlera null nëse atyre nuk u është caktuar në mënyrë eksplicite vlera null. Modaliteti respekton rreptësisht llojet e variablave, gjë që lejon përpiluesin të aplikojë optimizime shtesë. Pajtueshmëria e tipit kontrollohet në kohën e përpilimit, për shembull, nëse përpiqeni t'i caktoni vlerën "Null" një ndryshoreje me një lloj që nuk nënkupton gjendje të pacaktuar, si "int", do të shfaqet një gabim.

Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster