Go前書き現在のプログラム以外でコードに追加機能が必要になる場合があります。これらの場合、パッケージを使用してプログラムをより洗練させることができます。パッケージは、ディスク上の単一のディレクトリ内のすべてのファイルを表します。パッケージは、他のGoファイルまたはパッケージで参照できる関数、タイプ、およびインターフェースを定義できます。このチュートリアルでは、パッケージのインストール、インポート、およびエイリアシングについて説明します。標準ライブラリパッケージGoに同梱されている標準ライブラリは、一連のパッケージです。これらのパッケージには、最新のソフトウェアを作成するための基本的な構成要素の多くが含まれています。+]パッケージには、文字列をフォーマットおよび印刷するための基本的な機能が含まれています。+`プロトコルでデータを送信および取得したりできる機能が含まれています。+`ステートメントでパッケージにアクセスする必要があります。import`キーワードで構成されます。+`パッケージをインポートして、この方法で乱数を生成できます。"math/rand"パッケージをインポートすると、現在のプログラムで別の名前空間として利用できるようになります。`のように、_dot表記法で関数を参照する必要があります。+`パッケージの関数は次の例のようになります。+`からランダムな要素を返します。for`ループを作成しましょう。`ループに移動します。ループ内で、プログラムは「+0」から「25」までの範囲内のランダムな整数を出力します。rand.Intn()+`に渡されます。+`でプログラムを実行すると、出力として10個のランダムな整数を受け取ります。これらはランダムであるため、プログラムを実行するたびに異なる整数が得られる可能性があります。出力は次のようになります。Output61222961801560整数が0未満または24を超えることはありません。`()`を使用してブロックを作成できます。import`キーワードを繰り返すことを避けることができます。これにより、コードがよりきれいになります。"math/rand")追加のパッケージを利用するために、出力をフォーマットし、ループ中に各乱数が生成された反復を出力できるようになりました。}}これで、プログラムを実行すると、次のような出力が表示されます。0このセクションでは、パッケージをインポートし、それらを使用してより洗練されたプログラムを作成する方法を学びました。これまでのところ、標準ライブラリのパッケージのみを使用しました。次に、他の開発者が作成したパッケージをインストールして使用する方法を見てみましょう。パッケージのインストール標準ライブラリには多くの便利で便利なパッケージが同梱されていますが、それらは「一般的な目的」であり、本質的に特定のものではないように意図的に設計されています。これにより、開発者は特定のニーズに合わせて、標準ライブラリの上に独自のパッケージを構築できます。+`コマンドが付属しています。このコマンドを使用すると、サードパーティのパッケージをローカル開発環境にインストールして、プログラムで使用できます。+`を使用してサードパーティのパッケージをインストールする場合、一般的なパスでパッケージが参照されるのが一般的です。そのパスは、GitHubなどのコードリポジトリでホストされているパブリックプロジェクトへのパスにすることもできます。+`]パッケージをインポートする場合は、完全な正規パスを使用します。+`]にインストールします。この例では、コードは次のディレクトリにインストールされます。$GOPATH/src/github.com/gobuffalo/flectパッケージは、バグに対処したり新しい機能を追加したりするために、元の作者によって頻繁に更新されています。この場合、そのパッケージの最新バージョンを使用して、新機能または解決されたバグを活用することができます。+`フラグを使用できます。github.com/gobuffalo/flectこのコマンドは、ローカルで見つからない場合、Goにパッケージをインストールさせます。インストールされている場合、Goはパッケージを最新バージョンに更新しようとします。+`コマンドは常に利用可能なパッケージの最新バージョンを取得します。パッケージの以前のバージョンに対する更新は、使用しているものよりもまだ新しい可能性があり、プログラムで更新するのに役立ちます。*ツールを使用する必要があります。1.11の時点で、Goモジュールは、インポートするパッケージのバージョンを管理するために使用されます。GitHubページ]で詳細を読むことができます。インポートされたパッケージのエイリアス使用しているサードパーティのパッケージと同じ名前のローカルパッケージが既にある場合は、パッケージ名を変更できます。この場合、衝突を処理するには、インポートのエイリアスを作成するのが最善の方法です。+`の名前を置くことで、Go内でパッケージの名前と機能を変更できます。このステートメントの構築は次のようになります。`パッケージの名前を変更します。変更されたプログラムは次のようになります。他の言語は、プログラムの後半で使いやすくするためにパッケージのエイリアスを好むが、Goはそうではない。guide]と一致しません。名前の衝突を避けるためにインポートの名前を変更するときは、最もローカルまたはプロジェクト固有のインポートの名前を変更することを目指してください。+`という_system_パッケージもインポートする必要がある場合、システムパッケージよりもローカルパッケージの名前を変更する方が便利です。可能な限り、名前の衝突を完全に回避することが最善です。このセクションでは、プログラム内の別のインポートと衝突しないようにインポートをエイリアスする方法を学びました。プログラムの読みやすさと明確さは重要であるため、コードを読みやすくするため、または名前の衝突を避ける必要がある場合にのみエイリアスを使用する必要があります。インポートのフォーマットインポートをフォーマットすることにより、パッケージを特定の順序にソートして、コードの一貫性を高めることができます。これにより、変更されるのがインポートの並べ替え順序のみである場合に、ランダムコミットが実行されなくなります。インポートをフォーマットするとランダムなコミットが防止されるため、これにより不必要なコードのチャーンや混乱するコードレビューが防止されます。+]を使用するようにエディターを設定できます。」を使用することは標準的なプラクティスと見なされます。+`はそれらのスタイルの変更を反映するように更新されます。これにより、あなたとあなたのコードで作業するすべての人が、インポートブロックで一貫したスタイリングを持つことが保証されます。以下に、フォーマット前のインポートブロックの例を示します。+`ツールを実行します(または、インストールされているほとんどのエディターで、ファイルを保存すると自動的に実行されます)。"github.com/digital/ocean/godo")最初にすべての標準ライブラリパッケージをグループ化し、次にサードパーティパッケージを空白行とともにグループ化することに注意してください。これにより、どのパッケージが使用されているかを読みやすく理解しやすくなります。+`を使用すると、すべてのインポートブロックが適切にフォーマットされ、同じファイルで作業している開発者間で不必要なコードのチャーンが防止されることを学びました。結論パッケージをインポートすると、Goに組み込まれていない関数を呼び出すことができます。+`を使用してインストールします。パッケージを利用することで、既存のコードを活用するため、プログラムをより堅牢で強力にすることができます。[独自のパッケージを作成]を使用して、自分や他のプログラマが将来のプログラムで使用することもできます。