Natrag na blog

Kako uvesti pakete u Go

Kako uvesti pakete u Go

Go (također poznat kao Golang) je open-source, statički tipizirani programski jezik. Izvorno ga je razvio Google. Neke od značajnih značajki Go-a uključuju jednostavnost, visoke performanse, čitljivost i učinkovitost.

Kao i svaki drugi istaknuti programski jezik, standardna biblioteka Go-a nudi bogat skup paketa. Međutim, funkcionalnosti možemo proširiti i uključivanjem paketa trećih strana. Ovaj vodič će demonstrirati uvoz paketa i njihovo uključivanje u vaše Go projekte.

Preduvjeti

Kako biste pratili ovaj vodič, trebat će vam sljedeće komponente pripremljene na raspolaganju:

Step 1 – Instalacija Go-a

Već smo raspravljali o instalaciji jezgre Go programskog jezika na Ubuntu 20.04. Međutim, postoji lakša alternativna metoda: g  (lagani upravitelj verzijama Go-a).

Razlog zašto ćemo koristiti g  je taj što nijedna verzija Go-a dostupna iz Ubuntuovih repozitorija paketa ili snap-a ne sadrži najnoviju dostupnu verziju Go-a (v1.18 u vrijeme pisanja ovog vodiča). Uvijek se preporučuje koristiti najnoviju dostupnu verziju bilo kojeg paketa programskog jezika.

Sljedeća naredba pokrenut će g  instalacijsku skriptu:

Import Packages in Go install go

Import Packages in Go installing go 2

Kako bi promjene stupile na snagu, morate ponovno pokrenuti sesiju ljuske. Nakon ponovnog pokretanja, provjerite instalaciju:

Import Packages in Go check go version

Nakon instalacije Go-a, također se preporučuje instalirati gopls . To je službeni poslužitelj jezika Go. Kompatibilan je s mnogim uređivačima teksta kao što su VS Code, Vim, Emacs, Sublime Text, Atom i mnogi drugi. Pokrenite sljedeću naredbu:

Naše Go programsko okruženje sada je spremno.

Step 2 – Stvaranje primjera Go skripte

Svi kodovi prikazani u ovom vodiču stat će u jednu Go skriptu. Stvorite primjer Go skripte:

Nakon što napravite promjene u skripti, možemo je pokrenuti pomoću sljedeće Go naredbe:

Ovdje će Go prevoditelj pokrenuti kod u načinu interpretatora.

Step 3 – Korištenje paketa standardne knjižnice

Go dolazi s ogromnom zbirkom u svojoj standardnoj knjižnici. Sastoji se od brojnih paketa, na primjer:

  • fmt: Implementira formatirani I/O s funkcijama analognim C-u ( printf  i scanf ).
  • http: Ovaj paket pruža funkcije za stvaranje web usluga, slanje i dohvaćanje podataka putem http  protokola, itd.

Da bi se bilo koji paket uključio u Go projekt, mora se implementirati pomoću import  izjave. Izjava se deklarira ključnom riječi import  zajedno s nazivima paketa. Na primjer, za uvoz math/rand , izjava uvoza izgledala bi ovako:

Sljedeći kod implementira različite funkcije iz paketa math/rand :

Ovaj kod prikazuje jednostavnu for petlju koja ispisuje 10 nasumičnih cijelih brojeva (0 do 24) na zaslonu. Ovdje:

  • rand.Int() : Ovaj poziv funkcije vraća nasumični cijeli broj.
  • rand.Intn() : Djeluje slično kao rand.Int()  ali prihvaća parametar koji definira raspon za nasumične cijele brojeve (od 0 do navedenog broja).

Zatim pokrenite kod:

Izlaz će izgledati ovako:

random number program

Imajte na umu da će izlaz biti potpuno isti jer je početna vrijednost (seed) za generator nasumičnih brojeva prema zadanim postavkama fiksna vrijednost. To je priroda generatora pseudonasumičnih brojeva. Možete saznati više o nasumičnom sjemenu ovdje.

Korak 4 – Uvoz više paketa

Veći i složeniji projekti moraju uključivati više paketa. Kako ih uvesti u svoj Go kod? Jedna valjana opcija je korištenje pojedinačnih izjava uvoza za svaki uvezeni paket. Međutim, ovaj je pristup neučinkovit u usporedbi sa sljedećom strukturom uvoza:

Ovdje jedna izjava uvoza uključuje više paketa istovremeno. To smanjuje količinu koda koju je potrebno napisati, a istovremeno poboljšava čitljivost.

Sljedeći kod stavlja ovu značajku u akciju:

Pokrenite kod:

Izlaz će izgledati otprilike ovako:

importing multiple packages

Korak 5 – Instaliranje dodatnih Go biblioteka

Standardna biblioteka jezika Go dolazi s brojnim korisnim paketima. Oni su, po dizajnu, opće namjene. To omogućuje programerima stvaranje vlastitih paketa povrh standardne biblioteke kako bi zadovoljili svoje specifične potrebe. Pogledajte službenu bazu podataka Go paketa.

What if you need to implement a third-party Go package? Go ships with the go install  naredbom ( go get  je zastarjela). Može preuzeti bilo koji Go paket treće strane s interneta.

Za demonstraciju, instalirat ćemo cobra-cli  paket. Sljedeća Go naredba preuzet će i instalirati potrebne datoteke te integrirati paket u sustav Go biblioteka:

install cobra cli

Binarna datoteka za cobra-cli  trebala bi se nalaziti na sljedećoj lokaciji:

list gopath files

Ostale datoteke paketa trebale bi se nalaziti na sljedećoj lokaciji:

list package files

Počevši od verzije Go v1.11, Go moduli definiraju verziju paketa koju želite uvesti. To je detaljno objašnjeno ovdje: Go Modules GitHub.

Korak 6 – Pseudonimi paketa

U različitim situacijama možete naići na konfliktne nazive paketa između lokalnih i uvezenih paketa. Ovdje stvaranje pseudonima (aliasing) može riješiti koliziju. Struktura pseudonima izgleda otprilike ovako:

Izmijenimo naš jednostavan Go program kako bismo uključili fmt_alias  kao pseudonim za paket fmt :

Primijetite da umjesto korištenja fmt.Printf() , koristimo pseudonim paketa fmt_alias.Printf() .

Međutim, Go nije baš blagonaklon prema pseudonimima. Kada koristite pseudonime kako biste izbjegli koliziju naziva uvoza, preporučuje se dodijeliti pseudonim najlokalnijem uvozu ili uvozu specifičnom za projekt. Na primjer, ako želite imati i lokalni paket strings  i sistemski paket strings , tada biste trebali dodijeliti pseudonim lokalnom paketu, a ne sistemskom paketu.

Najbolja praksa je uopće izbjegavati kolizije naziva.

Korak 7 – Formatiranje uvoza

Naučili smo deklarirati sve uvoze koristeći jednu import  izjavu. Što ako imate nekoliko uvoza? Na primjer:

Formatiranje uvoza sortira pakete u određeni redoslijed, poboljšavajući dosljednost koda. Budući da samo sortira redoslijed uvoza, također sprječava nasumične commitove. Također sprječava nepotrebne izmjene koda i zbunjujuće preglede koda.

Većina modernih uređivača automatski će formatirati uvoze za vas. Alternativno, podržavat će goimports. Uobičajena je praksa u industriji koristiti goimports  umjesto ručnog sortiranja uvoza. Osim toga, goimports  također odražava promjene stila u kodu.

Evo kako import  blok može izgledati nakon primjene goimports :

Primjećujete li neki uzorak?

  • Sve standardne biblioteke grupirane su prve.
  • Grupe su odvojene praznim linijama, što poboljšava čitljivost koda.

Završne misli

Uvozi (Imports) u Go-u moćna su značajka koja omogućuje pozivanje funkcija koje nisu ugrađene u Go. Iako standardna biblioteka nudi mnoge pakete opće namjene, Go također podržava pakete trećih strana. Ovaj vodič prikazuje uvoz ugrađenih paketa i paketa trećih strana u Go-u.

U ovom smo vodiču pokretali naše Go programe koristeći interpreter. Međutim, kodove možete kompajlirati u samostalne binarne datoteke za bolje performanse. Više o kompajliranju Go programa možete saznati ovdje. Ako želite naučiti kako postaviti Go web aplikaciju s Nginxom, pogledajte ovaj vodič. Osim toga, možete pogledati naš vodič koji prikazuje kako napisati vlastite Go pakete.

Jeste li Go developer? CloudSigma nudi podršku za Go API za besprijekornu integraciju s vašim projektima.

Sretno kodiranje!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.