Go 標準ライブラリ简介
この記事を書いている時点で、Go のディストリビューションは 1.21 になり、このサイトが設立されてから 1 年以上が経過しています。
Go 言語の標準ライブラリは非常に豊富で(データ構造を除く)、機能も非常に強力で、API は開発者にとって非常に友好的です。標準ライブラリを熟练に使用できることは、日常の開発に非常に大きな助けとなります。例えば、外部依存関係を使用せず、net/http、html/template、database/sql の 3 つのライブラリだけで、独立した完全な Web プロジェクトを開発できます。
標準ライブラリのコンテンツは、標準ライブラリのコンテンツが非常に多いため、これまで更新されていませんでした。そのため、以下では一般的に使用される標準ライブラリの役割を簡単に概要説明します。これにより、興味のあるものを選んで理解することができます。各標準ライブラリのパッケージレベルのコメントには、そのパッケージの用途について詳細な説明があります。
fmt、フォーマットされた入出力を処理するためのパッケージhtml、HTML テンプレート操作パッケージnet、一連のネットワーク操作を提供するパッケージ、非常に強力ですflag、コマンドライン引数解析パッケージreflect、反射操作パッケージlog、標準のログパッケージsort、ソート操作パッケージregex、正規表現パッケージimage、画像操作パッケージtime、時間操作パッケージunicode、Unicode 文字セット操作パッケージunsafe、型制限のないポインタ操作を提供syscall、オペレーティングシステムが提供するシステムコールパッケージtesting、テストパッケージ、主にテスト作成時に使用しますsync、並行操作パッケージcontext、コンテキストパッケージstrconv、文字列変換パッケージstrings、文字列操作パッケージbytes、バイトスライス操作パッケージmaps、map 操作パッケージslices、スライス操作パッケージio、基本的な IO インターフェースのセットを定義します。例えば、よく使用されるCloser、Writerなどがあります。また、基本的な IO 操作関数もあります。io/fs、ファイルシステムの一連のインターフェースを定義します。ファイルシステムの抽象化と言えます。os、オペレーティングシステムと対話するためのパッケージで、一連の具体的な関数を提供します。上記の 2 つの具体的な実装と簡単に理解できます。os/signal、オペレーティングシステムシグナルパッケージで、オペレーティングシステムのシグナルを監視するために使用されます。主にプログラムの優雅なシャットダウンを実装するために使用されます。os/exec、オペレーティングシステムコマンドパッケージで、オペレーティングシステムコマンドを実行するために使用されます。os/user、オペレーティングシステムユーザーパッケージで、オペレーティングシステムのユーザー情報を取得するために使用されます。bufio、バッファ付き IO 読み取り・書き込みパッケージpath、スラッシュ区切りパスを処理するパッケージ。例えば URL など。path/filepath、ファイルパスを処理するパッケージmath、数学操作パッケージmath/bits、ビット演算操作パッケージmath/cmplx、複素数操作パッケージ。三角関数のツール関数も提供します。math/rand、疑似乱数パッケージmath/big、大数高精度計算パッケージcontainer/heap、最小ヒープの実装container/list、双方向リンクリストの実装container/ring、リングの実装archive/zip、zip 圧縮アーカイブパッケージarchive/tar、tar アーカイブファイルパッケージcompress、圧縮アルゴリズム実装パッケージ。例えば gzip、flate など。database/sql、データベースと対話するためのパッケージencoding、エンコーディングを処理するパッケージ。その下に多くのサブパッケージがあります。例えばjson、xmlなど。また、base64のようなものもあります。crypto、暗号化を処理するパッケージ。その下に多くのサブパッケージがあります。例えば sha1、rsa など。go/ast、Go ソースコードの抽象構文ツリーマッピングパッケージgo/parser、Go ソースコードを抽象構文ツリーに解析するパッケージgo/importer、インポーターへのアクセスを提供go/format、Go 言語フォーマットパッケージarena、手動でメモリを割り当てて解放する機能を提供します。実験段階にあります。runtime、ランタイム操作パッケージ。Go にはこのパッケージで実装されている操作が多くあります。
