Go の「内部」パッケージ メカニズムを使用すると、コードを他のプロジェクトからは見えない自己完結型モジュールに編成できます。これらの使用法を理解すると、コードの構造と保守性が向上します。
次のプロジェクト構造を検討してください:
project/ internal/ foo/ foo.go # package foo bar/ bar.go # package bar main.go
main.go から「内部」パッケージをインポートする場合、相対パッケージを使用することが重要ですpaths:
import ( "project/internal/foo" "project/internal/bar" )
これは、「内部」パッケージが project/ ディレクトリの外には表示されないため機能します。ただし、フルパスを使用したインポート (例: import "foo") は失敗します。
Go モジュールでは、プロジェクト ディレクトリを配置します。 $GOPATH/src の外側では、モジュールの依存関係を定義するために go.mod ファイルが必要です。プロジェクトのルートに go.mod ファイルを作成します:
module project go 1.14 require internal/bar v1.0.0 replace internal/bar => ./internal/bar require internal/foo v1.0.0 replace internal/foo => ./internal/foo
この場合、internal/bar と external/foo は別個のモジュールとして扱われます。 replace ディレクティブにより、インポートが確実にローカル ディレクトリに解決されます。
これで、main.go ファイルを実行すると次のように出力されます:
Hello from Bar Hello from Foo
これは、「内部」パッケージを使用してコードをカプセル化し、クリーンなプロジェクトを維持する方法を示しています。構造。
以上がコード構成を強化するために Go で「内部」パッケージを効果的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。