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 formattatohtml, pacchetto per operazioni con template HTMLnet, fornisce una serie di pacchetti per operazioni di rete, molto potenteflag, pacchetto per l'analisi dei parametri della riga di comandoreflect, pacchetto per operazioni di riflessionelog, pacchetto di logging integratosort, pacchetto per operazioni di ordinamentoregex, pacchetto per espressioni regolariimage, pacchetto per operazioni sulle immaginitime, pacchetto per operazioni con il tempounicode, pacchetto per operazioni con il set di caratteri unicodeunsafe, fornisce operazioni con puntatori senza limitazioni di tiposyscall, pacchetto per chiamate di sistema fornite dal sistema operativotesting, pacchetto per test, utilizzato principalmente per scrivere testsync, pacchetto per operazioni di concorrenzacontext, pacchetto per il contestostrconv, pacchetto per la conversione di stringhestrings, pacchetto per operazioni con stringhebytes, pacchetto per operazioni con slice di bytemaps, pacchetto per operazioni con mapslices, pacchetto per operazioni con sliceio, definisce una serie di interfacce IO di base, comeCloser,Writerecc. comunemente usati, e alcune funzioni di base per operazioni IOio/fs, definisce una serie di interfacce per il filesystem, è un'astrazione del filesystemos, pacchetto per interagire con il sistema operativo, fornisce una serie di funzioni concrete, può essere semplicemente inteso come l'implementazione concreta dei due precedentios/signal, pacchetto per segnali del sistema operativo, utilizzato per ascoltare i segnali del sistema operativo, principalmente per implementare un'arresto elegante del programmaos/exec, pacchetto per comandi del sistema operativo, utilizzato per eseguire comandi del sistema operativoos/user, pacchetto per utenti del sistema operativo, utilizzato per ottenere informazioni sugli utenti del sistema operativobufio, pacchetto per lettura/scrittura IO con bufferpath, pacchetto per gestire percorsi separati da barre, come URLpath/filepath, pacchetto per gestire percorsi di filemath, pacchetto per operazioni matematichemath/bits, pacchetto per operazioni bit a bitmath/cmplx, pacchetto per operazioni con numeri complessi, fornisce anche alcune funzioni utility per funzioni trigonometrichemath/rand, pacchetto per numeri pseudo-casualimath/big, pacchetto per calcoli con numeri grandi ad alta precisionecontainer/heap, implementazione di heap minimocontainer/list, implementazione di lista doppiamente collegatacontainer/ring, implementazione di anelloarchive/zip, pacchetto per archiviazione compressa ziparchive/tar, pacchetto per file di archiviazione tarcompress, pacchetto per implementazione di algoritmi di compressione, come gzip, flatedatabase/sql, pacchetto per interagire con il databaseencoding, pacchetto per gestire codifiche, ha molti sottopacchetti comejson,xmlecc., e anchebase64crypto, pacchetto per gestire crittografia, ha molti sottopacchetti come sha1, rsa ecc.go/ast, pacchetto per mappatura dell'albero di sintassi astratto del codice sorgente Gogo/parser, pacchetto per analizzare il codice sorgente Go in albero di sintassi astrattogo/importer, fornisce accesso all'importergo/format, pacchetto per formattazione del linguaggio Goarena, fornisce funzionalità per allocazione e deallocazione manuale della memoria, in fase sperimentaleruntime, pacchetto per operazioni runtime, molte operazioni in Go sono implementate da questo pacchetto
