Go のマルチパッケージ ディレクトリ構造
Go プロジェクトを開発する場合、ライブラリとコマンドラインを組み合わせる必要がある場合があります。同じディレクトリ内のインターフェイス (CLI)。ただし、同じディレクトリに同じ名前の 2 つのパッケージを置くことはできないため、コンパイル エラーが発生します。
解決策: ネストされたパッケージ
これを解決するにはこの問題が発生した場合は、同じディレクトリ内に新しいフォルダーを作成してパッケージを格納できます。ライブラリまたは CLI パッケージをこの新しいフォルダーに移動すると、パッケージを効果的にネストできます。
たとえば、次のディレクトリ構造を考えてみましょう。
whatever.io/ myproject/ main.go lib/ myproject.go cli/ main.go
この構造では、 lib フォルダーにはライブラリ パッケージ (myproject) が含まれ、cli フォルダーには CLI パッケージ (main) が含まれます。ルート ディレクトリの main.go ファイルは、CLI アプリケーションのエントリ ポイントとして機能します。
ライブラリ パッケージをコードにインポートするには、次のインポート ステートメントを使用します:
import "whatever.io/myproject/lib/myproject"
$GOPATH 環境変数をネストされたパッケージの親ディレクトリに設定することを忘れないでください。これにより、コンパイラはインポート パスを正しく解決できます。
ネストされたパッケージの利点
ネストされたパッケージを使用すると、次のような利点があります。
要約すると、同じディレクトリに同じ名前の 2 つのパッケージを置くことはできませんが、新しいフォルダー内にパッケージをネストすることで同様の機能を実現できます。このアプローチにより、Go プロジェクトに柔軟性とモジュール性が提供されます。
以上が同じディレクトリ内にライブラリと CLI の両方を含む Go プロジェクトを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。