Gaan programmeertaal vrystelling 1.16

Die vrystelling van die programmeertaal Go 1.16 word aangebied, wat deur Google ontwikkel word met die deelname van die gemeenskap as 'n hibriede oplossing wat die hoë werkverrigting van saamgestelde tale kombineer met sulke voordele van skriftale as gemak van skryf van kode, vinnige ontwikkeling en foutbeskerming. Die projekkode word onder die BSD-lisensie versprei.

Die sintaksis van Go is gebaseer op die bekende elemente van die C-taal met 'n paar ontlenings van die Python-taal. Die taal is redelik bondig, maar die kode is maklik om te lees en te verstaan. Go-kode word saamgestel in afsonderlike binêre uitvoerbare lêers wat inheems loop sonder die gebruik van 'n virtuele masjien (profilering, ontfouting en ander looptyd probleem opsporing substelsels is geïntegreer as runtime komponente), wat dit moontlik maak om prestasie vergelykbaar met C programme te bereik.

Die projek is aanvanklik ontwikkel met die oog op multi-draad programmering en doeltreffende werking op multi-kern stelsels, insluitend die verskaffing van middele geïmplementeer op die operateur vlak vir die organisering van parallelle rekenaar en interaksie tussen parallel uitgevoer metodes. Die taal bied ook ingeboude beskerming teen oorskryding van toegekende geheueblokke en bied die vermoë om die vullisverwyderaar te gebruik.

Sleutelinnovasies wat in die Go 1.16-vrystelling bekendgestel is:

  • Die embed-pakket is bygevoeg, wat gereedskap bied om arbitrêre lêers en gidse in die program in te sluit. 'n Nuwe "//go:embed"-instruksie word verskaf om lêers te spesifiseer wat ingebed moet word tydens samestelling. Byvoorbeeld, om die opmerking "//go:embed test.txt" in die kode te spesifiseer en die veranderlike "var f embed.FS" as 'n opvolg te verklaar, sal lei tot die inbedding van die test.txt-lêer en die moontlikheid van toegang daartoe deur die "f" beskrywing. Net so kan jy lêers insluit met hulpbronne of individuele waardes van 'n sekere tipe wat nodig is vir werk, byvoorbeeld om die stringveranderlike "s" van die version.txt-lêer te kry, kan jy spesifiseer: import _ "embed" // go:embed version.txt var s string print(s)
  • Die verstek vereis nou die gebruik van 'n nuwe modulestelsel met geïntegreerde weergawe-ondersteuning wat GOPATH-gebaseerde afhanklikheidbestuur vervang. Die GO111MODULE omgewingsveranderlike is nou by verstek op "aan" gestel, en modulemodus word gebruik ongeag die teenwoordigheid van 'n go.mod-lêer in die werk- of ouergids. In die nuwe modus verander bouopdragte soos "gaan bou" en "gaan toets" nie die inhoud van go.mod en go.sum nie, terwyl "gaan installeer" weergawe-gespesifiseerde argumente verwerk ("gaan installeer voorbeeld.com/[e-pos beskerm]"). Om die ou gedrag terug te keer, verander GO111MODULE na "outo". Daar word opgemerk dat 96% van ontwikkelaars reeds na die nuwe modulestelsel oorgeskakel het.
  • Die skakelaar is geoptimaliseer. Vir groot projekte is koppeling nou 20-25% vinniger en vereis 5-15% minder geheue.
  • Die samesteller voeg ondersteuning by vir inlynfunksie-uitbreiding met 'n verkorte definisie van 'vir'-lusse, metodewaardes en 'tipe skakelaar'-konstrukte.
  • Bygevoeg ondersteuning vir Apple-stelsels toegerus met die nuwe Apple M1 ARM-skyfie. Bygevoeg netbsd/arm64 en openbsd/mips64 poorte met ondersteuning vir NetBSD op 64-bis ARM en OpenBSD op MIPS64 stelsels. Ondersteuning vir cgo en "-buildmode=pie"-modus is by die linux/riscv64-poort gevoeg.
  • Ondersteuning vir x87-samestellingmodus is laat vaar (GO386=387). Ondersteuning vir verwerkers sonder SSE2-instruksies is nou beskikbaar via die "GO386=softfloat"-programmodus.

Daarbenewens kan ons let op die begin van die toets van die beta-vrystelling van die Dart 2.12-taal, waarin die nulveiligheidsmodus gestabiliseer is, wat ineenstortings sal vermy wat veroorsaak word deur pogings om veranderlikes te gebruik waarvan die waarde nie gedefinieer is nie en op Null gestel is. Die modus impliseer dat veranderlikes nie ongedefinieerde waardes kan hê nie, tensy hulle uitdruklik op nul gestel is. Die modus neem die tipe veranderlikes streng in ag, wat die samesteller toelaat om bykomende optimalisering toe te pas. Tipe-passing word gekontroleer tydens samestelling, byvoorbeeld, as jy probeer om die waarde "Nul" toe te ken aan 'n veranderlike met 'n tipe wat nie 'n onbepaalde toestand impliseer nie, soos "int", sal 'n fout vertoon word.

Bron: opennet.ru

Voeg 'n opmerking