Programski jezik Go se je zelo razvil, odkar je bil prvič objavljen leta 2009. Go 1.18 je bila zelo pričakovana izdaja zaradi podpore za generike in številnih drugih pomembnih posodobitev.

Go je izdal različico 1.18 marca 2022. Tukaj je spodnji del najpomembnejših sprememb.

Podpora za generike

Generično programiranje vam omogoča pisanje funkcij, ki lahko sprejmejo in vrnejo bolj prilagodljive tipe.

Pred podporo za generike ste morali izrecno navesti vrste parametrov in vrnjene vrste. Najenostavnejša oblika generikov vam omogoča, da določite netipizirane parametre:

funcPrintAnything[T vse](stvarT) {
fmt.Println(stvar)
}

Toda generiki ponujajo veliko več moči kot le to. Za parametre lahko deklarirate skoraj vsako kombinacijo in granularnost tipa. Na primer, lahko uporabite omejitve paket za pisanje funkcije, ki deluje na poljubni vrednosti, ki jo lahko naročite. To vključuje int, floats in nize. Tukaj je primer, ki prikazuje sintakso:

uvoz "golang.org/x/exp/constraints"

funcmaks[T omejitve. naročeno](vnos[]T) (maksT) {
za _, v := vnos obsega {
če v > največ {
max = v
}
}

vrnitev maks
}

Upoštevajte, da ta funkcija uporablja generično vrsto, omejitve. Naročeno, da deklarirate svoj parameter in njegovo vrnjeno vrsto.

Generiki zagotavljajo negotovost in fleksibilnost v kodi. Predlog in spremembe Generics so združljivi nazaj.

Fuzz testiranje

Fuzzing je a tehnika testiranja programske opreme ki preverja program z napačnimi, nepričakovanimi ali nepredvidljivimi podatki.

The testiranje paket uvaja fuzz v različici 1.18, zato ga morate, če želite definirati fuzz, uvoziti iz standardne knjižnice:

uvoz "testiranje"

Po uvozu testiranje paket, lahko posredujete identifikator tipa *testiranje. F na testno funkcijo.

functestFunc(f *testiranje. F) {
// vaša koda
}

Fuzzing generira vhodne parametre za testiranje kode. Izid fuzziranja je nepredvidljiv, saj vhodi niso uporabniško definirani. Fuzzing bi vam moral pomagati pri pisanju boljših testov kode in lovljenju hroščev, za katere niste vedeli, da obstajajo.

Go Workspace Support

Delovni prostori so imeniki podobne izvorne kode, ki sestavljajo projekt ali večjo enoto. Delovni prostori olajšajo upravljanje in odpravljanje napak kode z združevanjem podobne kode glede na funkcionalnost.

Običajno projekte Go razdelite na izvorno kodo (src) in izvedljive datoteke (koš). Orodna veriga Go gradi izvorno kodo iz prvega v izvedljive datoteke v slednjem. Delovni prostori Go omogočajo razvijalcem delo z več delovnimi prostori z uporabo modulov Go z določenim glavnim modulom.

Ukaz za ustvarjanje delovnih prostorov je:

$ pojdi delat <ukaz>

Uporabi delo ukaz s podukazi, kot je:

  • v → ustvari delovni prostor v določenem imeniku.
  • uporaba → doda nov modul go.work, datoteko delovnega prostora go.
  • Uredi → ureja datoteko delovnega prostora go.
  • sinhronizacija → sinhronizira odvisnosti s seznama gradnje v module delovnega prostora.

Vključitev delovnih prostorov bi povečala produktivnost, kot je bilo načrtovano pri razvoju jezika.

Izboljšave zmogljivosti

Pojdi različica 1.18 zdaj podpira ARM64 Apple M1 in 64-bitni PowerPC v konvenciji o klicih ABI. To povzroči več kot 10-odstotno povečanje zmogljivosti procesorja za uporabnike teh naprav.

Deklarirane in neuporabljene spremenljivke v funkcijah so zdaj zabeležene kot napake pri prevajanju programa.

The pojdi graditi ukaz, skupaj z drugimi povezanimi ukazi, podpira -asan zastavo, ki podpira interoperabilnost s C/C++. To bo razvijalcem Go pomagalo uporabljati programe Go s programi C in C++.

Druge pomembne posodobitve

The Pojdi iskat ukaz ne namešča več paketov v načinu, ki se zaveda modulov, kar je velika sprememba v primerjavi z vašim najprej začel z Go. The pojdi namesti ukaz zamenja dobiti za prilagajanje odvisnosti modulov v delovnih prostorih.

Ker preverjevalnik tipov zdaj obravnava generične, se lahko sporočila o napakah zabeležijo drugače kot v prejšnjih različicah.

Čas, potreben za prevajanje programov, je lahko počasnejši v različici 1.18. Vendar to ne bo vplivalo na čas izvedbe, ko Go prevede vaš program.

Vse podrobnosti o vseh najnovejših spremembah najdete v opombah k izdaji za Pojdi 1.18.

Go 1.18 ima več različnih dodatkov

Z uporabo Go 1.18 lahko zdaj pišete generično kodo, učinkovito testirate z uporabo fuzziranja in preklapljate med moduli Go z uporabo delovnih prostorov. Lahko celo napišete kodo, ki deluje v povezavi s programi C in C++.

Ali se je Golang danes vredno učiti?

Preberite Naprej

DelitiTweetDelitiE-naslov

Povezane teme

  • Programiranje
  • Programiranje
  • Programski jeziki

O avtorju

Osebje MUO

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite