ホームページ > バックエンド開発 > Golang > インポート エラーを発生させずに複数のディレクトリにまたがる Go パッケージを整理するにはどうすればよいですか?

インポート エラーを発生させずに複数のディレクトリにまたがる Go パッケージを整理するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-31 17:11:18
オリジナル
874 人が閲覧しました

How Can I Organize a Go Package Across Multiple Directories Without Import Errors?

Go パッケージの複数のソース ディレクトリ

Go では、複数のソース ディレクトリを含むパッケージの開発は、特に整理する場合に困難になることがあります。ユーザーのインポートの容易さを維持しながら、コード構造を変更できます。

複数のソース ファイルで同じパッケージ名を宣言するのは自然なことのように思えるかもしれませんが、ディレクトリが異なる場合、この方法はお勧めできません。 Go 言語仕様によれば、実装ではパッケージのすべてのソース ファイルが同じディレクトリに存在することが必要になる場合があります。同じパッケージから複数のディレクトリをインポートしようとすると、エラーが発生します:

error: redefinition of ‘mypackage’
ログイン後にコピー

複数のソース ディレクトリを宣言する代わりに、Go はいくつかの代替手段を提供します:

  1. ファイル名の変更: フォルダー階層を模倣するようにファイル名を構造化します。

    foo/foo1.go
    foo/bar/bar1.go
    foo/bar/bar2.go
    ログイン後にコピー

    の代わりに:

    foo/foo1.go
    foo/bar-bar1.go
    foo/bar-bar2.go
    ログイン後にコピー
  2. パッケージの分割を検討します: パッケージが大きくなりすぎる場合は、複数の小さいパッケージに分割することを検討してください。パッケージ。これにより、依存関係の複雑さと保守性が軽減されます。
  3. 内部パッケージ: Go 1.5 で導入された内部パッケージを使用すると、パッケージの外部からアクセスできるようにすることなく、サブディレクトリ内の関連ファイルをグループ化できます。これは、コード ベースを整理し、可視性を制御するのに役立ちます。

要約すると、複数のソース ディレクトリにまたがって Go パッケージを開発することはお勧めできません。推奨されるアプローチには、ファイル名の変更、パッケージの分割、または内部パッケージの利用が含まれます。これらの代替手段を使用すると、適切なパッケージのインポートと可視性を確保しながら、コードを効果的に整理できます。

以上がインポート エラーを発生させずに複数のディレクトリにまたがる Go パッケージを整理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート