ホームページ > バックエンド開発 > Golang > Go は相対インポートを使用できますか?

Go は相対インポートを使用できますか?

Barbara Streisand
リリース: 2024-12-18 03:35:10
オリジナル
184 人が閲覧しました

Can Go Use Relative Imports?

Go での相対インポート: ベスト プラクティスと代替案

Go では、モジュールとパッケージのインポートは通常、明確さを確保するために絶対インポート パスを使用して行われます。そして一貫性。ただし、親ディレクトリから相対インポートを実行することは可能ですか?

最初に質問で提案されたのは、「import "../../../meme" などの相対インポート パスを使用すること」です。 「」は直感的に思えるかもしれない。ただし、Go のコンパイラはそのようなパスに関する問題に遭遇し、あいまいなインポート解決エラーが発生します。

Go の方法: 絶対パスを採用する

Go では、相対インポートの使用を強く推奨しません。パス。このアプローチは複雑さをもたらし、推奨されるコード編成の実践に反します。すべてのパッケージは一意のインポート パスを持ち、同じパスを使用して他のすべてのプロジェクトから一貫してインポートされる必要があります。

実践例

Go プロジェクトを構築する場合は、次の推奨事項を考慮してください。 :

  • すべてを保存するための $GOPATH ディレクトリ (例: ~/go) を作成します。 Go 関連のコードとリソース。
  • $GOPATH/src 内のフォルダーを次のように整理します。以下:

    • $GOPATH/src/bitbucket.org/anacrolix/meme/cmd/meme
    • $GOPATH/src/github.com/ha/doozerd/peer
  • パッケージ内で、絶対パスを使用して他のパッケージをインポートします。たとえば、camlistore.org/pkg/auth は、フルパスを使用して camlistore.org/pkg/netutil をインポートします。

曖昧さを避け、一貫性を促進

これらのベスト プラクティスに従うことで、インポート パスの曖昧さを回避し、一貫したコード構成を確保できます。相対インポートは便利に見えるかもしれませんが、不必要な混乱を招き、Go プロジェクトのスケーラビリティを制限します。 Go の方法を採用し、明確さと堅牢性のために絶対インポート パスを活用します。

以上がGo は相対インポートを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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