GOROOT および GOPATH
Go ツールは、ソースコードに特定の構造を想定しています。この構造は、2 つの環境変数 GOROOT と GOPATH によって定義されます。これらの変数を理解し、適切に設定することで、Go プロジェクトが正しくコンパイルされ、実行されるようになります。
GOROOT 変数は、Go SDK の場所を指定します。通常、GoLand によって自動的に設定されるため、別の Go バージョンを使用する場合を除き、変更する必要はありません。
GOPATH 変数は、Go プロジェクトのワークスペースを定義します。デフォルトでは、Unix 系システムでは $HOME/go、Windows では %USERPROFILE%\go です。これは、インストールされたバイナリ、キャッシュされたモジュール、チェックサムデータのルートディレクトリとして機能します。
バイナリは、
go installによって $GOBIN にインストールされます (デフォルト: $GOPATH/bin)。モジュールは、
go getによって $GOMODCACHE にキャッシュされます (デフォルト: $GOPATH/pkg/mod)。チェックサムデータベースの状態は $GOPATH/pkg/sumdb に保存されます。
詳細については、go コマンドドキュメントの GOPATH セクション(英語)を参照してください。
次のビデオでは、GoLand で Go SDK を新しいバージョンに変更する方法を説明します。
GOROOT
GOROOT 設定は、GoLand がプロジェクトで使用する Go SDK のバージョンを定義します。IDE から直接新しいバージョンをダウンロードするか、ローカルインストールを設定することができます。
GOROOT の設定
設定を開き(Ctrl+Alt+S)、に移動します。
リストから Go バージョンを選択してください。利用可能なバージョンがない場合は、SDK の追加をクリックして Go バージョンをダウンロードするか、ローカルの Go SDK インストールを選択してください。

ローカルの Go SDK を選択する
選択したフォルダーに bin ディレクトリと src ディレクトリの両方が含まれていることを確認します。
設定(Ctrl+Alt+S)を開き、に移動します。
SDK の追加ボタン (
) をクリックし、ローカルを選択します。
ファイルブラウザーで、システム上の Go SDK フォルダーに移動します。
「オープン」をクリックして確認します。

Go SDK をダウンロードする
設定を開き(Ctrl+Alt+S)、に移動します。
SDK の追加ボタン(
)をクリックして、ダウンロードを選択します。
リストから、必要な Go SDK バージョンを選択します。
ロケーションフィールドで、SDK をインストールする場所を指定します。場所を参照するには、参照アイコン(
)をクリックします。
OK をクリックして、ダウンロードとインストールの設定を確認します。
設定ダイアログで適用または OK をクリックすると、GoLand は選択した Go SDK を自動的にダウンロードして解凍します。

asdf の使用
asdf を使用すると、プロジェクトで複数の Go バージョンを管理できます。GoLand は、asdf を通じてインストールおよび管理された Go SDK を認識し、IDE 内で直接切り替えることができます。
asdf は、複数のプログラミング言語とユーティリティを扱うバージョンマネージャーです。グローバルまたはプロジェクトディレクトリごとに異なる Go バージョンを定義できます。
asdf global: システム全体のデフォルトの Go バージョンを設定します。asdf local: 特定のプロジェクトまたはディレクトリの Go バージョンを設定します。
GoLand は asdf local と asdf global の両方の構成をサポートしています。複数のバージョン(例: asdf local golang 1.21.0 1.20.8)を指定することもできます。IDE は設定されたバージョンを自動的に検出し、Go SDK リストに表示します。
プロジェクトの asdf 管理の Go バージョンを選択する
設定を開き(Ctrl+Alt+S)、 に移動します。
利用可能な SDK のリストから、asdf が管理する Go バージョンを選択します。asdf がインストールおよび設定されている場合は、提供されるバージョンが自動的に表示されます。

バージョンを選択すると、GoLand は対応する Go SDK を使用してプロジェクトのビルド、実行、テストを行います。バージョンは、同じ設定ページを使用するか、プロジェクトディレクトリ内の .tool-versions ファイルを更新することでいつでも変更できます。
GOPATH
GOPATH 変数は、Go プロジェクト、ダウンロードしたモジュール、インストールしたバイナリが保存されるワークスペースを定義します。ワークフローに応じて、グローバルに設定することも、プロジェクトおよびモジュールごとに設定することもできます。
GoLand では、GOPATH を異なるスコープで設定できるため、さまざまなプロジェクトまたは SDK バージョンごとに環境を分離できます。
異なるスコープの GOPATH の構成
GOPATH は次のいずれかのスコープに対して構成できます。
IDE は、Unix システムではデフォルトの GOPATH を $HOME/go に、Windows では %USERPROFILE%\go に自動的に設定します。以下の設定で変更できます。
GOPATH の構成
設定を開き(Ctrl+Alt+S)、 に移動します。
設定するスコープを選択します。
グローバル GOPATH : GoLand の現在のインストール内のすべてのプロジェクトに適用されます。
プロジェクト GOPATH : 現在のプロジェクトにのみ適用されます。
モジュール GOPATH : 特定のモジュールに適用されます。各モジュールは異なる SDK またはフレームワーク構成を使用できます。
新しいパスを追加するには、追加 (
) をクリックします。
ファイルブラウザーで、GOPATH に関連付けるディレクトリを選択します。選択したパスは、ダウンロードしたモジュール、バイナリ、キャッシュを保存するために使用されます。

変更を適用すると、GoLand は Go 環境を自動的に更新します。新しいパスはプロジェクト構成に反映され、Go ツールによるインポート、ビルド、依存関係管理に使用されます。
関連ページ:
Go テンプレート
Go には独自のテンプレートエンジンがあり、text/template と html/template の 2 つのパッケージに分割されています。これらのパッケージは機能的に似ていますが、html/template ではユーザーがコードインジェクションに対して安全な HTML コードを生成できるため、Web ページやメールでの使用に適しているという点が異なります。また、これらのパッケージは、Helm の構成や Kubernetes パッケージマネージャーなど、他のアプリケーションでのコーディング支援を提供し...
ビルド制約とベンダリング
ビルド制約とベンダリングモードは、ビルドプロセスを微調整するために使用できるツールです。ビルド制約では、パッケージに含めるファイルを決定するルールを定義します。ベンダリングモードを有効にすると、プロジェクト内に保存されている依存関係パッケージのみを使用してアプリケーションがビルドされるようになります。このアプローチにより、パッケージに特定のファイルセットを含め、ローカルで変更またはパッチを適用した依存関係を使用できます。ビルド制約:ビルド制約 (ビルドタグとも呼ばれる) は、パッケージにファイ...