ホームページ >バックエンド開発 >Golang >コード構成を強化するために Go で「内部」パッケージを効果的に使用するにはどうすればよいですか?

コード構成を強化するために Go で「内部」パッケージを効果的に使用するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-08 17:29:09495ブラウズ

How Can I Effectively Use

Go での「内部」パッケージの使用

Go の「内部」パッケージ メカニズムを使用すると、コードを他のプロジェクトからは見えない自己完結型モジュールに編成できます。これらの使用法を理解すると、コードの構造と保守性が向上します。

gt;構造とインポート パス

次のプロジェクト構造を検討してください:

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") は失敗します。

Modules および go.mod

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 サイトの他の関連記事を参照してください。

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