Torna al blog

Come importare pacchetti in Go

Come importare pacchetti in Go

Go (noto anche come Golang) è un linguaggio di programmazione open-source, tipizzato staticamente. È stato originariamente sviluppato da Google. Alcune caratteristiche degne di nota di Go includono semplicità, alte prestazioni, leggibilità ed efficienza.

Come qualsiasi altro linguaggio di programmazione di rilievo, la libreria standard di Go offre un ricco set di pacchetti. Tuttavia, possiamo anche estendere le funzionalità incorporando pacchetti di terze parti. Questa guida mostrerà come importare i pacchetti e incorporarli nei tuoi progetti Go.

Prerequisiti

Per seguire questa guida, avrai bisogno dei seguenti componenti pronti a tua disposizione:

Passo 1 – Installazione di Go

Abbiamo già discusso dell'installazione del nucleo del linguaggio di programmazione Go su Ubuntu 20.04. Tuttavia, c’è un metodo alternativo più semplice: g  (un gestore di versioni Go leggero).

Il motivo per cui useremo g  è che nessuna delle versioni di Go disponibili nei repository dei pacchetti di Ubuntu o tramite snap presenta l'ultima versione di Go disponibile (v1.18 al momento della stesura di questa guida). Si raccomanda sempre di utilizzare l'ultima versione disponibile di qualsiasi pacchetto di linguaggio di programmazione.

Il seguente comando eseguirà lo script di installazione di g  :

Import Packages in Go install go

Import Packages in Go installing go 2

Affinché le modifiche abbiano effetto, devi riavviare la sessione della shell. Dopo il riavvio, verifica l'installazione:

Import Packages in Go check go version

Dopo aver installato Go, si raccomanda anche di installare gopls . È il server di linguaggio ufficiale di Go. È compatibile con molti editor di testo come VS Code, Vim, Emacs, Sublime Text, Atom e molti altri. Esegui il seguente comando:

Il nostro ambiente di programmazione Go è ora pronto.

Passo 2 – Creazione di uno script Go di esempio

Tutti i codici mostrati in questa guida entreranno in un singolo script Go. Crea uno script Go di esempio:

Dopo aver apportato modifiche allo script, possiamo eseguirlo utilizzando il seguente comando Go:

Qui, il compilatore Go eseguirà il codice in modalità interprete.

Passo 3 – Utilizzo dei pacchetti della libreria standard

Go viene fornito con una vasta collezione nella sua libreria standard. Consiste in numerosi pacchetti, ad esempio:

  • fmt: Implementa l'I/O formattato con funzioni analoghe al C ( printf  e scanf ).
  • http: Questo pacchetto fornisce funzioni per la creazione di servizi web, l'invio e il recupero di dati tramite il protocollo http  , ecc.

Per incorporare qualsiasi pacchetto in un progetto Go, deve essere implementato utilizzando l'istruzione import . L'istruzione è dichiarata dalla parola chiave import  insieme ai nomi dei pacchetti. Ad esempio, per importare math/rand , l'istruzione import sarebbe simile a questa:

Il seguente codice implementa varie funzioni dal pacchetto math/rand :

Questo codice mostra un semplice ciclo for che stampa sullo schermo 10 numeri interi casuali (da 0 a 24). Qui:

  • rand.Int() : questa chiamata di funzione restituisce un numero intero casuale.
  • rand.Intn() : si comporta in modo simile a rand.Int()  ma accetta un parametro che definisce l'intervallo per i numeri interi casuali (da 0 al numero specificato).

Successivamente, esegui il codice:

L'output sarà simile a questo:

random number program

Nota che l'output sarà esattamente lo stesso poiché il seed per il generatore di numeri casuali è un valore fisso per impostazione predefinita. Questa è la natura di un generatore di numeri pseudocasuali. Puoi saperne di più su random seed qui.

Step 4 – Importare pacchetti multipli

I progetti più grandi e complessi devono incorporare più pacchetti. Come si importano nel codice Go? Un'opzione valida è utilizzare singole istruzioni di importazione per ciascun pacchetto importato. Tuttavia, questo approccio è inefficiente rispetto alla seguente struttura di importazione:

Qui, una singola istruzione di importazione incorpora più pacchetti contemporaneamente. Ciò riduce la quantità di codice da scrivere migliorando al contempo la leggibilità.

Il seguente codice mette in azione questa funzionalità:

Esegui il codice:

L'output sarà simile a questo:

importing multiple packages

Step 5 – Installare librerie Go aggiuntive

La libreria standard di Go include numerosi pacchetti utili. Questi sono, per progettazione, di uso generale. Consente agli sviluppatori di creare i propri pacchetti sopra la libreria standard per soddisfare le loro esigenze specifiche. Dai un'occhiata al database dei pacchetti Go ufficiale.

E se avessi bisogno di implementare un pacchetto Go di terze parti? Go viene fornito con il comando go install  ( go get  è deprecato). Può recuperare qualsiasi pacchetto Go di terze parti da Internet.

A scopo dimostrativo, installeremo il pacchetto cobra-cli . Il seguente comando Go scaricherà e installerà i file necessari e integrerà il pacchetto nel sistema di librerie di Go:

install cobra cli

Il binario di cobra-cli  dovrebbe trovarsi nella seguente posizione:

list gopath files

Gli altri file del pacchetto dovrebbero trovarsi nella seguente posizione:

list package files

A partire da Go v1.11, i moduli Go definiscono la versione del pacchetto che si desidera importare. Questo è spiegato in dettaglio qui: GitHub dei moduli Go.

Step 6 – Alias dei pacchetti

In varie situazioni, potresti riscontrare nomi di pacchetti in conflitto tra i pacchetti locali e quelli importati. È qui che l'aliasing può risolvere la collisione. La struttura dell'aliasing si presenta in questo modo:

Modifichiamo il nostro semplice programma Go per incorporare fmt_alias  come alias per il pacchetto fmt :

Nota che invece di usare fmt.Printf() , stiamo usando l'alias del pacchetto fmt_alias.Printf() .

Tuttavia, Go non è molto favorevole agli alias. Quando si utilizzano gli alias per evitare collisioni di nomi di importazione, si consiglia di creare l'alias per l'importazione più locale o specifica del progetto. Ad esempio, se si desidera avere sia un pacchetto locale strings  sia un pacchetto di sistema strings , allora dovresti creare l'alias per il pacchetto locale, non per quello di sistema.

La migliore pratica consiste nell'evitare del tutto le collisioni di nomi.

Step 7 – Formattazione delle importazioni

Abbiamo imparato a dichiarare tutte le importazioni utilizzando una singola istruzione import . E se avessi diverse importazioni? Ad esempio:

La formattazione delle importazioni ordina i pacchetti in un ordine specifico, migliorando la coerenza del codice. Poiché ordina solo l'ordine delle importazioni, previene anche commit casuali. Inoltre, evita inutili rimescolamenti di codice e revisioni del codice confuse.

La maggior parte degli editor moderni formatterà le importazioni automaticamente. In alternativa, supporteranno goimports. È una pratica comune nel settore utilizzare goimports  invece di ordinare manualmente le importazioni. Inoltre, goimports  riflette anche le modifiche di stile nel codice.

Ecco come il blocco import  potrebbe apparire dopo aver applicato goimports :

Noti qualche pattern?

  • Tutte le librerie standard sono raggruppate per prime.
  • I gruppi sono separati da righe vuote, migliorando la leggibilità del codice.

Considerazioni finali

Le importazioni in Go sono una potente funzionalità che consente di chiamare funzioni non integrate in Go. Sebbene la libreria standard offra molti pacchetti di uso generale, Go supporta anche pacchetti di terze parti. Questa guida mostra come importare pacchetti Go integrati e di terze parti.

In questa guida abbiamo eseguito i nostri programmi Go utilizzando l'interprete. Tuttavia, è possibile compilare il codice in binari autonomi per ottenere prestazioni migliori. Puoi saperne di più su come compilare i programmi Go qui. Se vuoi imparare come distribuire un'applicazione web Go con Nginx, consulta questo tutorial. Inoltre, puoi dare un'occhiata alla nostra guida che mostra come scrivere i tuoi pacchetti Go.

Sei uno sviluppatore Go? CloudSigma offre supporto per l'API Go per un'integrazione perfetta con i tuoi progetti.

Buona programmazione!

author

Preslav Dobrev

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.