Programovací jazyk Go sa od svojho prvého zverejnenia v roku 2009 značne vyvinul. Go 1.18 bolo veľmi očakávaným vydaním vďaka podpore generík a mnohým ďalším dôležitým aktualizáciám.

Go vydaná verzia 1.18 v marci 2022. Tu je prehľad najdôležitejších zmien.

Podpora pre generiká

Všeobecné programovanie vám umožňuje písať funkcie, ktoré môžu prijať a vrátiť flexibilnejšie typy.

Pred podporou generík ste museli explicitne uviesť typy parametrov a návratové typy. Najjednoduchšia forma generík vám umožňuje špecifikovať netypizované parametre:

funcTlačiť čokoľvek[T any](vecT) {
fmt.Println(vec)
}

Ale generiká ponúkajú oveľa väčšiu silu ako len toto. Pre parametre môžete deklarovať takmer akúkoľvek kombináciu a zrnitosť typu. Môžete napríklad použiť obmedzenia balík na napísanie funkcie, ktorá funguje s akoukoľvek hodnotou, ktorú si môžete objednať. To zahŕňa int, floats a strings. Tu je príklad, ktorý demonštruje syntax:

importovať "golang.org/x/exp/constraints"

funcMax[T obmedzenia. objednané](vstup[]T) (maxT) {
pre _, v := vstup rozsahu {
ak v > max {
max = v
}
}

vrátiť max
}

instagram viewer

Upozorňujeme, že táto funkcia používa všeobecný typ, obmedzenia. Objednané, deklarovať jeho parameter a jeho návratový typ.

Generiká poskytujú neistotu a flexibilitu v kóde. Generický návrh a zmeny sú spätne kompatibilné.

Fuzz testovanie

Fuzzing je a technika testovania softvéru ktorý overí program s chybnými, neočakávanými alebo nepredvídateľnými údajmi.

The testovanie balík zavádza fuzzing vo verzii 1.18, takže ak chcete definovať fuzz, musíte ho importovať zo štandardnej knižnice:

importovať "testovanie"

Po importe testovanie balík, môžete odovzdať identifikátor typu *testovanie. F na testovaciu funkciu.

functestFunc(f *testovanie. f) {
// váš kód
}

Fuzzing generuje vstupné parametre pre testovací kód. Výsledok fuzzingu je nepredvídateľný, pretože vstupy nie sú definované používateľom. Fuzzing by vám mal pomôcť napísať lepšie testy kódu a zachytiť chyby, o ktorých ste nevedeli.

Prejsť na podporu pracovného priestoru

Pracovné priestory sú adresáre podobného zdrojového kódu, ktoré tvoria projekt alebo väčšiu jednotku. Pracovné priestory uľahčujú správu a ladenie kódu zoskupením podobného kódu na základe funkčnosti.

Projekty Go zvyčajne delíte na zdrojový kód (src) a spustiteľné súbory (kôš). Nástroj Go vytvára zdrojový kód z prvého do spustiteľných súborov v druhom. Pracovné priestory Go umožňujú vývojárom pracovať s viacerými pracovnými priestormi pomocou modulov Go s konkrétnym hlavným modulom.

Príkaz na vytváranie pracovných priestorov je:

$ ísť do práce <príkaz>

Použi práca príkaz s čiastkovými príkazmi ako:

  • init → vytvorí pracovný priestor v zadanom adresári.
  • použitie → pridá nový modul do go.work, súbor pracovného priestoru go.
  • upraviť → upraví súbor pracovného priestoru go.
  • synchronizácia → synchronizuje závislosti zo zoznamu zostavení do modulov pracovného priestoru.

Začlenenie pracovných priestorov by zvýšilo produktivitu, ako sa plánovalo pri vývoji jazyka.

Zlepšenia výkonu

Choď verzia 1.18 teraz podporuje ARM64 Apple M1 a 64-bit PowerPC v konvencii volania ABI. To má za následok viac ako 10% zvýšenie výkonu CPU pre používateľov týchto zariadení.

Deklarované a nepoužívané premenné vo funkciách sa teraz zaznamenávajú ako chyby pri kompilácii programu.

The ísť stavať spolu s ďalšími súvisiacimi príkazmi podporuje -asan príznak, ktorý podporuje interoperabilitu s C/C++. To pomôže vývojárom Go používať programy Go s programami C a C++.

Ďalšie dôležité aktualizácie

The choď si príkaz už neinštaluje balíky v režime s ohľadom na moduly, čo je veľká zmena oproti stavu, keď ste najprv som začal s Go. The ísť nainštalovať príkaz nahrádza dostať na úpravu závislostí modulov naprieč pracovnými priestormi.

Keďže kontrola typu teraz spracováva generické údaje, chybové hlásenia sa môžu protokolovať inak ako v predchádzajúcich verziách.

Čas potrebný na kompiláciu programov môže byť vo verzii 1.18 pomalší. To však neovplyvní čas vykonania, keď Go skompiluje váš program.

Úplné podrobnosti o všetkých najnovších zmenách nájdete v poznámkach k vydaniu pre Choď 18.1.

Go 1.18 má niekoľko rôznych doplnkov

Pomocou Go 1.18 môžete teraz písať generický kód, efektívne testovať pomocou fuzzingu a prepínať medzi modulmi Go pomocou pracovných priestorov. Môžete dokonca napísať kód, ktorý funguje v spojení s programami C a C++.

Oplatí sa dnes golang učiť?

Prečítajte si ďalej

zdieľamTweetujtezdieľamEmail

Súvisiace témy

  • Programovanie
  • Programovanie
  • Programovacie jazyky

O autorovi

Zamestnanci MUO

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber