Skip to content

Introduzione alla Libreria Standard di Go

Al momento della stesura di questo articolo, la versione distribuita di Go è arrivata alla 1.21, ed è passato quasi un anno dalla creazione di questo sito.

La libreria standard di Go è molto ricca (escluse le strutture dati) e anche molto potente, con API molto amichevoli per gli sviluppatori. Saper utilizzare la libreria standard sarà di grande aiuto per lo sviluppo quotidiano. Ad esempio, puoi sviluppare un progetto Web indipendente e completo senza alcuna dipendenza esterna, utilizzando solo queste tre librerie: net/http, html/template e database/sql.

Il contenuto della libreria standard non è stato aggiornato per molto tempo perché ci sono davvero troppi contenuti. Quindi di seguito verrà fornita una semplice panoramica del ruolo delle librerie standard più comunemente utilizzate, in modo da poter scegliere quelle di tuo interesse da approfondire. Ogni commento a livello di pacchetto della libreria standard descriverà in dettaglio a cosa serve quel pacchetto.

  • fmt, pacchetto per gestire l'input/output formattato
  • html, pacchetto per operazioni con template HTML
  • net, fornisce una serie di pacchetti per operazioni di rete, molto potente
  • flag, pacchetto per l'analisi dei parametri della riga di comando
  • reflect, pacchetto per operazioni di riflessione
  • log, pacchetto di logging integrato
  • sort, pacchetto per operazioni di ordinamento
  • regex, pacchetto per espressioni regolari
  • image, pacchetto per operazioni sulle immagini
  • time, pacchetto per operazioni con il tempo
  • unicode, pacchetto per operazioni con il set di caratteri unicode
  • unsafe, fornisce operazioni con puntatori senza limitazioni di tipo
  • syscall, pacchetto per chiamate di sistema fornite dal sistema operativo
  • testing, pacchetto per test, utilizzato principalmente per scrivere test
  • sync, pacchetto per operazioni di concorrenza
  • context, pacchetto per il contesto
  • strconv, pacchetto per la conversione di stringhe
  • strings, pacchetto per operazioni con stringhe
  • bytes, pacchetto per operazioni con slice di byte
  • maps, pacchetto per operazioni con map
  • slices, pacchetto per operazioni con slice
  • io, definisce una serie di interfacce IO di base, come Closer, Writer ecc. comunemente usati, e alcune funzioni di base per operazioni IO
  • io/fs, definisce una serie di interfacce per il filesystem, è un'astrazione del filesystem
  • os, pacchetto per interagire con il sistema operativo, fornisce una serie di funzioni concrete, può essere semplicemente inteso come l'implementazione concreta dei due precedenti
  • os/signal, pacchetto per segnali del sistema operativo, utilizzato per ascoltare i segnali del sistema operativo, principalmente per implementare un'arresto elegante del programma
  • os/exec, pacchetto per comandi del sistema operativo, utilizzato per eseguire comandi del sistema operativo
  • os/user, pacchetto per utenti del sistema operativo, utilizzato per ottenere informazioni sugli utenti del sistema operativo
  • bufio, pacchetto per lettura/scrittura IO con buffer
  • path, pacchetto per gestire percorsi separati da barre, come URL
  • path/filepath, pacchetto per gestire percorsi di file
  • math, pacchetto per operazioni matematiche
  • math/bits, pacchetto per operazioni bit a bit
  • math/cmplx, pacchetto per operazioni con numeri complessi, fornisce anche alcune funzioni utility per funzioni trigonometriche
  • math/rand, pacchetto per numeri pseudo-casuali
  • math/big, pacchetto per calcoli con numeri grandi ad alta precisione
  • container/heap, implementazione di heap minimo
  • container/list, implementazione di lista doppiamente collegata
  • container/ring, implementazione di anello
  • archive/zip, pacchetto per archiviazione compressa zip
  • archive/tar, pacchetto per file di archiviazione tar
  • compress, pacchetto per implementazione di algoritmi di compressione, come gzip, flate
  • database/sql, pacchetto per interagire con il database
  • encoding, pacchetto per gestire codifiche, ha molti sottopacchetti come json, xml ecc., e anche base64
  • crypto, pacchetto per gestire crittografia, ha molti sottopacchetti come sha1, rsa ecc.
  • go/ast, pacchetto per mappatura dell'albero di sintassi astratto del codice sorgente Go
  • go/parser, pacchetto per analizzare il codice sorgente Go in albero di sintassi astratto
  • go/importer, fornisce accesso all'importer
  • go/format, pacchetto per formattazione del linguaggio Go
  • arena, fornisce funzionalità per allocazione e deallocazione manuale della memoria, in fase sperimentale
  • runtime, pacchetto per operazioni runtime, molte operazioni in Go sono implementate da questo pacchetto

Golang by www.golangdev.cn edit