Späť na blog

Ako importovať balíky v Go

Ako importovať balíky v Go

Go (tiež známy ako Golang) je open-source, staticky typovaný programovací jazyk. Pôvodne ho vyvinula spoločnosť Google. Medzi významné vlastnosti jazyka Go patrí jednoduchosť, vysoký výkon, čitateľnosť a efektívnosť.

Podobne ako akýkoľvek iný významný programovací jazyk, aj štandardná knižnica jazyka Go ponúka bohatú sadu balíkov. Funkcionalitu však môžeme rozšíriť aj začlenením balíkov tretích strán. Tento návod ukáže importovanie balíkov a ich začlenenie do vašich projektov v Go.

Požiadavky

Na sledovanie tohto návodu budete musieť mať k dispozícii nasledujúce komponenty:

Krok 1 – Inštalácia Go

Inštaláciu jadra programovacieho jazyka Go na Ubuntu 20.04 sme už rozoberali. Existuje však jednoduchšia alternatívna metóda: g  (ľahký správca verzií Go).

Dôvod, prečo budeme používať g  je ten, že žiadna z verzií Go dostupných v repozitároch balíkov Ubuntu alebo snap neobsahuje najnovšiu dostupnú verziu Go (v1.18 v čase písania tohto návodu). Vždy sa odporúča používať najnovšiu dostupnú verziu akéhokoľvek balíka programovacieho jazyka.

Nasledujúci príkaz spustí g  inštalačný skript:

Import Packages in Go install go

Import Packages in Go installing go 2

Aby sa zmeny prejavili, musíte reštartovať reláciu shellu. Po reštarte overte inštaláciu:

Import Packages in Go check go version

Po inštalácii Go sa tiež odporúča nainštalovať gopls . Je to oficiálny jazykový server pre Go. Je kompatibilný s mnohými textovými editormi ako VS Code, Vim, Emacs, Sublime Text, Atom a mnohými ďalšími. Spustite nasledujúci príkaz:

Naše programovacie prostredie Go je teraz pripravené.

Krok 2 – Vytvorenie ukážkového skriptu Go

Všetky kódy predvedené v tomto návode sa zmestia do jedného skriptu Go. Vytvorte ukážkový skript Go:

Po vykonaní zmien v skripte ho môžeme spustiť pomocou nasledujúceho príkazu Go:

Tu kompilátor Go spustí kód v režime interpreta.

Krok 3 – Používanie balíkov štandardnej knižnice

Go prichádza s obrovskou zbierkou vo svojej štandardnej knižnici. Skladá sa z mnohých balíkov, napríklad:

  • fmt: Implementuje formátovaný vstup/výstup s funkciami analogickými k C ( printf  a scanf ).
  • http: Tento balík poskytuje funkcie na vytváranie webových služieb, odosielanie a prijímanie údajov cez http  protokol, atď.

Na začlenenie akéhokoľvek balíka do projektu Go musí byť implementovaný pomocou príkazu import . Príkaz sa deklaruje kľúčovým slovom import  spolu s názvami balíkov. Napríklad na importovanie math/rand  by príkaz import vyzeral takto:

Nasledujúci kód implementuje rôzne funkcie z balíka math/rand :

Tento kód demonštruje jednoduchý cyklus for, ktorý na obrazovku vypíše 10 náhodných celých čísel (0 až 24). Tu:

  • rand.Int() : Toto volanie funkcie vracia náhodné celé číslo.
  • rand.Intn() : Funguje podobne ako rand.Int() , ale prijíma parameter, ktorý definuje rozsah pre náhodné celé čísla (od 0 po zadané číslo).

Ďalej spustite kód:

Výstup bude vyzerať takto:

random number program

Upozorňujeme, že výstup bude presne rovnaký, pretože počiatočná hodnota (seed) pre generátor náhodných čísel je predvolene pevná hodnota. Toto je prirodzená vlastnosť generátora pseudonáhodných čísel. Viac sa môžete dozvedieť o random seed tu.

Step 4 – Importing Multiple Packages

Väčšie a komplexnejšie projekty musia zahŕňať viacero balíkov. Ako ich importujete do svojho kódu v Go? Jednou z možností je použiť samostatné príkazy import pre každý importovaný balík. Tento prístup je však neefektívny v porovnaní s nasledujúcou štruktúrou importu:

Tu jeden príkaz import zahŕňa viacero balíkov súčasne. To znižuje množstvo kódu, ktorý je potrebné napísať, a zároveň zlepšuje čitateľnosť.

Nasledujúci kód uvádza túto funkciu do praxe:

Spustite kód:

Výstup bude vyzerať približne takto:

importing multiple packages

Step 5 – Installing Additional Go Libraries

Štandardná knižnica Go obsahuje množstvo užitočných balíkov. Tie sú navrhnuté ako univerzálne. Umožňujú vývojárom vytvárať si vlastné balíky nad štandardnou knižnicou, aby vyhovovali ich špecifickým potrebám. Pozrite si oficiálnu databázu balíkov Go.

Čo ak potrebujete implementovať balík Go od tretej strany? Go sa dodáva s go install  príkazom ( go get  je zastaraný). Dokáže stiahnuť akýkoľvek balík Go od tretej strany z internetu.

Na demonštráciu nainštalujeme cobra-cli  balík. Nasledujúci príkaz Go stiahne a nainštaluje potrebné súbory a integruje balík do systému knižníc Go:

install cobra cli

Binárny súbor cobra-cli  by sa mal nachádzať na nasledujúcom mieste:

list gopath files

Ostatné súbory balíka by sa mali nachádzať na nasledujúcom mieste:

list package files

Počnúc verziou Go v1.11 definujú moduly Go verziu balíka, ktorý chcete importovať. Podrobne je to vysvetlené tu: GitHub pre moduly Go.

Step 6 – Package Aliases

V rôznych situáciách môžete naraziť na konfliktné názvy balíkov medzi lokálnymi a importovanými balíkmi. V takom prípade môže kolíziu vyriešiť vytvorenie aliasu. Štruktúra aliasu vyzerá približne takto:

Upravme náš jednoduchý program v Go tak, aby zahŕňal fmt_alias  ako alias pre balík fmt :

Všimnite si, že namiesto použitia fmt.Printf() , používame alias balíka fmt_alias.Printf() .

Go však nie je k aliasom veľmi ústretové. Keď používate aliasy, aby ste sa vyhli kolízii názvov importov, odporúča sa vytvoriť alias pre najlokálnejší import alebo import špecifický pre projekt. Napríklad, ak chcete mať lokálny balík strings  aj systémový balík strings , mali by ste vytvoriť alias pre lokálny balík, nie pre systémový balík.

Najlepším postupom je v prvom rade predchádzať kolíziám názvov.

Step 7 – Imports Formatting

Naučili sme sa deklarovať všetky importy pomocou jediného import  príkazu. Čo ak by ste mali niekoľko importov? Napríklad:

Formátovanie importov usporadúva balíky do špecifického poradia, čo zlepšuje konzistentnosť kódu. Keďže iba triedi poradie importov, zabraňuje to aj náhodným commitom. Taktiež to predchádza zbytočným zmenám v kóde a mätúcim revíziám kódu.

Väčšina moderných editorov vám importy naformátuje automaticky. Prípadne budú podporovať goimports. V odvetví je bežnou praxou používať goimports  namiesto manuálneho triedenia importov. Okrem toho goimports  tiež odráža zmeny štýlu v kóde.

Takto môže vyzerať import  blok po použití goimports :

Všimli ste si nejaký vzor?

  • Všetky štandardné knižnice sú zoskupené ako prvé.
  • Skupiny sú oddelené prázdnymi riadkami, čo zlepšuje čitateľnosť kódu.

Záverečné myšlienky

Importy v Go sú výkonnou funkciou, ktorá umožňuje volať funkcie, ktoré nie sú vstavané v Go. Hoci štandardná knižnica ponúka mnoho balíkov na všeobecné účely, Go podporuje aj balíky tretích strán. Táto príručka demonštruje importovanie vstavaných balíkov a balíkov tretích strán pre Go.

V tejto príručke sme naše programy v Go spúšťali pomocou interpreta. Kódy však môžete skompilovať do samostatných binárnych súborov pre lepší výkon. Viac informácií o kompilácii programov v Go nájdete tu. Ak sa chcete dozvedieť, ako nasadiť webovú aplikáciu v Go pomocou Nginx, pozrite si tento návod. Okrem toho si môžete pozrieť nášho sprievodcu, ktorý ukazuje, ako písať vlastné balíky v Go.

Ste vývojár v Go? CloudSigma ponúka podporu pre Go API pre bezproblémovú integráciu s vašimi projektmi.

Príjemnú prácu!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.