Go/標準ライブラリー
archive

Goには、豊富な標準ライブラリーとサードパーティーの追加パッケージが用意されています。Goの豊富な標準ライブラリーには、文字列操作、暗号、アーカイブ、メール操作、Unicodeのエンコードとデコード、数学ルーチン、ネットワーク、エラー操作、オペレーティングシステムのインターフェイス、その他の一般的な機能など、使用頻度の高いプログラミングタスクが含まれています。
archive

この項目では、このうち標準ライブラリーについて、公式の標準ライブラリーのドキュメントにコメンタリーを追加する形で解説します。
archive

tarパッケージは、tarアーカイブへのアクセスを実装しています。
archive

テープアーカイブ (tar) は、ストリーミング方式で読み書き可能な一連のファイルを 保存するためのファイル形式です。本パッケージは、GNU や BSD の tar ツールで作成されたものを含め、このフォーマットのほとんどのバリエーションをカバーすることを目的としています。
archive

パッケージzipは、ZIPアーカイブの読み書きのサポートを提供します。
archive

zip パッケージは、ZIP アーカイブの読み書きのサポートを提供します。
archive

参照: https://www.pkware.com/appnote
archive

本パッケージはディスクスパニング(disk spanning)をサポートしていません。
archive

bufioパッケージはバッファードI/Oを実装します。これは io.Reader または io.Writer オブジェクトをラップして、同じくインターフェイスを実装する別のオブジェクト(Reader または Writer)を作成しますが、バッファリングとテキスト I/O のためのいくつかのヘルプを提供します。
archive

パッケージbuiltinは、Goの事前宣言された識別子のためのドキュメントを提供します。
archive

bytesパッケージは、バイトスライスを操作するための関数を実装しています。
archive

bzip2パッケージは、bzip2の解凍を実装しています。
archive

パッケージ flate は RFC 1951 で述べられている DEFLATE 圧縮データフォーマットを実装しています。
archive

gzipパッケージはRFC1952で規定されているgzip形式の圧縮ファイルの読み書きを実装しています。
archive

lzwパッケージは、T. A. Welch, "A Technique for High-Performance Data Compression", Computer, 17(6) (June 1984), pp 8-19に記載されているLempel-Ziv-Welch圧縮データフォーマットを実装しています。
archive

zlibパッケージは、RFC1950で規定されているzlib形式の圧縮データの読み書きを実装しています。
archive

heapパッケージはheap.Interfaceを実装している任意の型のためのheap操作を提供します。
archive

listパッケージはダブルリンクされたリストを実装します。
archive

ringパッケージは循環リストに対する操作を実装しています。
archive

contextパッケージはContext型を定義します。Contextはデッドライン、キャンセル・シグナル、およびその他のリクエスト・スコープの値をAPIの境界やプロセス間で運びます。
archive

cryptoパッケージは、一般的な暗号定数を集めたものです。
archive

aesパッケージは、米国連邦情報処理基準出版物197に定義されているAES暗号(旧Rijndael)を実装しています。
archive

cipherパッケージは、低レベルのブロック暗号の実装に巻き付けることができる、標準的なブロック暗号モードを実装しています。
archive

desパッケージは,米国連邦情報処理基準出版物46-3に定義されているDES(Data Encryption Standard)およびTDEA(Triple Data Encryption Algorithm)を実装しています。
archive

dsaパッケージは、FIPS 186-3 で定義されているデジタル署名アルゴリズムを実装しています。
archive

ecdsaパッケージは,FIPS 186-3で定義されている楕円曲線デジタル署名アルゴリズムを実装しています。
archive

ed25519パッケージは、Ed25519署名アルゴリズムを実装しています。
archive

ellipticパッケージは、素数体上のいくつかの標準的な楕円曲線を実装しています。
archive

hmacパッケージは,米国連邦情報処理基準出版物198に定義されているHMAC(Keyed-Hash Message Authentication Code)を実装しています。
archive

md5パッケージは、RFC 1321で定義されているMD5ハッシュアルゴリズムを実装しています。
archive

randパッケージは、暗号化された安全な乱数生成器を実装しています。
archive

rc4パッケージは、Bruce SchneierのApplied Cryptographyで定義されているRC4暗号を実装しています。
archive

rsaパッケージは、PKCS #1とRFC 8017で規定されているRSA暗号を実装しています。
archive

sha1パッケージは、RFC 3174 で定義されている SHA-1 ハッシュアルゴリズムを実装しています。
archive

sha256パッケージは、FIPS 180-4で定義されているSHA224およびSHA256ハッシュアルゴリズムを実装しています。
archive

sha512パッケージは、FIPS 180-4で定義されているSHA-384、SHA-512、SHA-512/224、およびSHA-512/256ハッシュアルゴリズムを実装しています。
archive

subtleパッケージは、暗号コードでよく使われるが、正しく使うには慎重な考えが必要な関数を実装しています(訳註:subtle には、「微妙な」「繊細な」「掴みどころのない」という意味があります)。
archive

tlsパッケージは、RFC 5246で規定されているTLS 1.2と、RFC 8446で規定されているTLS 1.3を部分的に実装しています。
archive

pkix パッケージには、X.509 証明書、CRL、および OCSP の ASN.1 解析およびシリアライズに使用される、共有された低レベルの構造が含まれています。
archive

fmtパッケージは、C言語のprintfやscanfに類似した関数でフォーマットされたI/Oを実装します。フォーマットの「動詞(verbs)」はC言語から派生したものですが、より単純です。
archive

複合オブジェクトの場合は、これらのルールを再帰的に使用して、以下のようにレイアウトされた要素が印刷されます。
archive

幅は、動詞の直前にあるオプションの10進数で指定されます。省略した場合は、値を表現するのに必要な幅となります。 精度は、(オプションの)幅の後にピリオドとそれに続く10進数で指定されます。ピリオドがない場合は、デフォルトの精度が使用されます。ピリオドとそれに続く数字がない場合、精度はゼロになります。例を示します。
archive

幅と精度は、Unicodeのコードポイント、つまりルーンの単位で測定されます。(フラグのいずれかまたは両方を文字'*'で置き換えることができ、その場合、その値は次のオペランド(フォーマットするオペランドの前)から取得されます。
archive

ほとんどの値の場合、幅は出力するルーン数の最小値であり、必要に応じてフォーマットされた形式にスペースを詰めます。
archive

しかし、文字列、バイトスライス、バイト配列については、精度はフォーマットされる入力の長さを制限し(出力のサイズではありません)、必要に応じて切り詰めます。通常、それはルーンで測定されるが、これらのタイプでは、%xまたは%Xフォーマットでフォーマットされた場合、それはバイトで測定される。
archive

浮動小数点値の場合、幅はフィールドの最小幅を設定し、精度は必要に応じて小数点以下の桁数を設定しますが、%g/%Gの場合、精度は最大有効桁数を設定します(末尾のゼロは削除されます)。例えば、12.345の場合、フォーマット%6.3fは12.345を表示し、%.3gは12.3を表示します。%e、%f、%#gのデフォルトの精度は6で、%gの場合は値を一意に識別するのに必要な最小桁数です。
archive

複素数の場合、幅と精度は2つの構成要素に独立して適用され、結果は括弧で囲まれますので、%fを1.2+3.4iに適用すると(1.200000+3.400000i)となります。
archive

Printfは、フォーマット指定子に従ってフォーマットし、標準出力に書き込みます。書き込んだバイト数と、書き込んだ際に発生したエラーを返します。
archive

Printlnは、オペランドにデフォルトのフォーマットを使用してフォーマットし、標準出力に書き込みます。 オペランド間には常にスペースが追加され、改行が追加されます。 書き込んだバイト数と、書き込んだ際に発生したエラーを返します。