Zpět na blog

Jak importovat balíčky v Go

Jak importovat balíčky v Go

Go (také známý jako Golang) je open-source, staticky typovaný programovací jazyk. Původně byl vyvinut společností Google. Mezi významné vlastnosti jazyka Go patří jednoduchost, vysoký výkon, čitelnost a efektivita.

Stejně jako u jiných významných programovacích jazyků nabízí standardní knihovna Go bohatou sadu balíčků. Jeho funkce však můžeme také rozšířit začleněním balíčků třetích stran. Tento průvodce ukáže importování balíčků a jejich začlenění do vašich projektů v Go.

Požadavky

Chcete-li postupovat podle tohoto průvodce, budete muset mít k dispozici následující komponenty:

Step 1 – Instalace Go

Již jsme diskutovali o instalaci jádra programovacího jazyka Go na Ubuntu 20.04. Existuje však snazší alternativní metoda: g  (lehký správce verzí Go).

Důvod, proč budeme používat g  je ten, že žádná z verzí Go dostupných z balíčkových repozitářů Ubuntu nebo snapu neobsahuje nejnovější dostupnou verzi Go (v1.18 v době psaní tohoto průvodce). Vždy se doporučuje používat nejnovější dostupnou verzi jakéhokoli balíčku programovacího jazyka.

Následující příkaz spustí g  instalační skript:

Import Packages in Go install go

Import Packages in Go installing go 2

Aby se změny projevily, musíte restartovat relaci shellu. Po restartu ověřte instalaci:

Import Packages in Go check go version

Po instalaci Go se také doporučuje nainstalovat gopls . Je to oficiální jazykový server pro Go. Je kompatibilní s mnoha textovými editory jako VS Code, Vim, Emacs, Sublime Text, Atom a mnoha dalšími. Spusťte následující příkaz:

Naše programovací prostředí Go je nyní připraveno.

Step 2 – Vytvoření ukázkového skriptu v Go

Všechny kódy předvedené v tomto průvodci se vejdou do jediného skriptu v Go. Vytvořte ukázkový skript v Go:

Po provedení změn ve skriptu jej můžeme spustit pomocí následujícího příkazu Go:

Zde kompilátor Go spustí kód v režimu interpretu.

Step 3 – Použití balíčků standardní knihovny

Go přichází s obrovskou kolekcí ve své standardní knihovně. Skládá se z mnoha balíčků, například:

  • fmt: Implementuje formátovaný I/O s funkcemi analogickými k C ( printf  a scanf ).
  • http: Tento balíček poskytuje funkce pro vytváření webových služeb, odesílání a načítání dat přes http  protokol, atd.

Chcete-li začlenit jakýkoli balíček do projektu v Go, musí být implementován pomocí příkazu import . Tento příkaz se deklaruje klíčovým slovem import  spolu s názvy balíčků. Například pro import math/rand  by příkaz import vypadal takto:

Následující kód implementuje různé funkce z balíčku math/rand :

Tento kód ukazuje jednoduchou smyčku for, která na obrazovku vypíše 10 náhodných celých čísel (0 až 24). Zde:

  • rand.Int() : Toto volání funkce vrací náhodné celé číslo.
  • rand.Intn() : Funguje podobně jako rand.Int() , ale přijímá parametr, který definuje rozsah pro náhodná celá čísla (od 0 do zadaného čísla).

Dále spusťte kód:

Výstup bude vypadat takto:

random number program

Všimněte si, že výstup bude přesně stejný, protože seed pro generátor náhodných čísel je ve výchozím nastavení pevná hodnota. To je přirozená vlastnost generátoru pseudonáhodných čísel. Více se můžete dozvědět o náhodném seedu zde.

Krok 4 – Importování více balíčků

Větší a složitější projekty vyžadují začlenění více balíčků. Jak je importujete do svého kódu v Go? Jednou z možností je použít samostatné příkazy import pro každý importovaný balíček. Tento přístup je však neefektivní ve srovnání s následující strukturou importu:

Zde jediný příkaz import začleňuje více balíčků současně. To snižuje množství kódu, který je nutné napsat, a zároveň zlepšuje čitelnost.

Následující kód uvádí tuto funkci do praxe:

Spusťte kód:

Výstup bude vypadat nějak takto:

importing multiple packages

Krok 5 – Instalace dalších knihoven Go

Standardní knihovna Go se dodává s mnoha užitečnými balíčky. Ty jsou ze své podstaty univerzální. Umožňuje vývojářům vytvářet vlastní balíčky nad standardní knihovnou, aby vyhovovaly jejich specifickým potřebám. Podívejte se na oficiální databázi balíčků Go.

What if you need to implement a third-party Go package? Go ships with the go install  command ( go get  is deprecated). It can grab any third-party Go package from the internet.

For demonstration, we are going to install the cobra-cli  package. The following Go command will download and install the necessary files and integrate the package into the Go library system:

install cobra cli

The binary of cobra-cli  should be located at the following location:

list gopath files

The other package files should be located at the following location:

list package files

Starting from Go v1.11, Go modules define the version of the package you wish to import. This is explained in detail here: Go Modules GitHub.

Krok 6 – Aliasy balíčků

V různých situacích můžete narazit na konfliktní názvy balíčků mezi lokálními a importovanými balíčky. Zde může kolizi vyřešit použití aliasů. Struktura aliasů vypadá nějak takto:

Upravme náš jednoduchý program v Go tak, aby začlenil fmt_alias  jako alias pro balíček fmt :

Všimněte si, že místo použití fmt.Printf() , používáme alias balíčku fmt_alias.Printf() .

Go však aliasům příliš nepřeje. Pokud používáte aliasy, abyste se vyhnuli kolizi názvů importů, doporučuje se vytvořit alias pro nejvíce lokální import nebo import specifický pro projekt. Pokud například chcete mít jak lokální balíček strings , tak systémový balíček strings , měli byste vytvořit alias pro lokální balíček, nikoli pro systémový balíček.

Nejlepším postupem je kolizím názvů v první řadě předcházet.

Krok 7 – Formátování importů

Naučili jsme se deklarovat všechny importy pomocí jediného příkazu import . Co kdybyste měli několik importů? Například:

Formátování importů řadí balíčky do specifického pořadí, což zlepšuje konzistenci kódu. Vzhledem k tomu, že pouze řadí pořadí importů, zabraňuje také náhodným commitům. Předchází také zbytečnému přepisování kódu a nepřehledným revizím kódu.

Většina moderních editorů naformátuje importy automaticky za vás. Případně budou podporovat goimports. V oboru je běžnou praxí používat goimports  namísto ručního řazení importů. Navíc goimports  také odráží změny stylu v kódu.

Zde je ukázka toho, jak může import  blok vypadat po použití goimports :

Všimli jste si nějakého vzorce?

  • Všechny standardní knihovny jsou seskupeny jako první.
  • Skupiny jsou odděleny prázdnými řádky, což zlepšuje čitelnost kódu.

Závěrečné myšlenky

Importy v Go jsou mocnou funkcí, která umožňuje volat funkce, které nejsou součástí Go. Zatímco standardní knihovna nabízí mnoho univerzálních balíčků, Go podporuje také balíčky třetích stran. Tento návod ukazuje importování vestavěných balíčků i balíčků třetích stran v Go.

V tomto návodu jsme spouštěli naše programy v Go pomocí interpretu. Pro lepší výkon však můžete kódy zkompilovat do samostatných binárních souborů. Více informací o kompilaci programů v Go najdete zde. Pokud se chcete dozvědět, jak nasadit webovou aplikaci v Go pomocí Nginx, podívejte se na tento návod. Kromě toho se můžete podívat na náš návod, který ukazuje, jak psát vlastní balíčky v Go.

Jste vývojář v Go? CloudSigma nabízí podporu pro Go API pro bezproblémovou integraci s vašimi projekty.

Přejeme příjemnou práci!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.