ホームページ >バックエンド開発 >Golang >複数の Go パッケージを 1 つのディレクトリに共存できますか?

複数の Go パッケージを 1 つのディレクトリに共存できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 18:56:11295ブラウズ

Can Multiple Go Packages Coexist in a Single Directory?

同じディレクトリ内の複数のパッケージの処理

質問:

維持することは可能ですか? 1 つの中に 2 つのパッケージが含まれているdirectory?

Background:

プロジェクトにライブラリとコマンドライン インターフェイス (CLI) の両方が含まれるシナリオでは、次のことを行うのが理にかなっているかどうかという疑問が生じます。これらを同じディレクトリ内の別個のパッケージとして構造化します。パッケージ main および func main 宣言は CLI の実行に不可欠ですが、ライブラリに必要なパッケージ myproject 宣言と競合するため、この懸念はプロジェクトのコンパイル時の潜在的な競合に起因します。

回答:

この問題を解決するには、メイン ディレクトリ内に新しいサブフォルダーを作成し、ライブラリまたは CLI を新しいフォルダーに移動することをお勧めします。これにより、2 つのパッケージ間の分離が確保され、名前の競合が回避されます。

解決策:

  1. メイン プロジェクト内に lib や bin などの新しいフォルダーを作成します。
  2. ライブラリ (myproject.go) または CLI (main.go) を新しいディレクトリに移動します。
  3. 移動されたパッケージが正しい $GOPATH 参照を使用して他のパッケージにインポートされていることを確認してください。

例:

を検討してください次の構造例:

whatever.io/
    myproject/
        main.go
        lib/
            myproject.go

この場合、ライブラリ myproject は次の場所に移動されています。 lib サブフォルダー。 main.go ファイルは、次を使用してライブラリをインポートできるようになりました。

import "../lib/myproject"

このアプローチでは、コンパイルの競合を解決しながらプロジェクトの構成が維持されます。

追加リソース:

  • [ビルドに行く vs ビルドに行くfile.go](https://stackoverflow.com/questions/29096547/go-build-vs-go-build-file-go)

以上が複数の Go パッケージを 1 つのディレクトリに共存できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。