GOPATH インポートの制限: 相対パスと絶対パスについて
Go でパッケージをインポートする場合、プロジェクト ディレクトリの場所が重要な役割を果たします。提供された例が示すように、GOPATH/src/project ディレクトリ内で相対インポートを使用すると、インポート エラーが発生する可能性があります。
Go のインポート メカニズムは、絶対インポート パスと相対インポート パスを区別します。絶対インポート パスはスラッシュ (/) で始まり、Go ワークスペースのルートを参照します。一方、相対インポート パスはピリオド (.) で始まり、現在のディレクトリに対して相対的です。
提供された例では、main.go ファイルは相対パス ( "./モデル")。ただし、プロジェクトが GOPATH/src/project ディレクトリにある場合、このパスは認識されません。これは、go build ツールと go install ツールが相対インポートを完全にはサポートしていないためです。
Go ツールとの互換性を確保するには、現在のディレクトリ外のパッケージには絶対インポート パスを使用することをお勧めします。この場合、正しいインポート ステートメントは次のようになります。
import "models"
この絶対インポート パスは、GOPATH 内のプロジェクトの場所に関係なく、main.go ファイルと同じディレクトリにあるモデル パッケージを参照します。
要約すると、Go の相対インポート パスの使用は制限されています。一貫性を確保し、潜在的なインポート エラーを回避するために、現在のディレクトリの外部からパッケージをインポートする場合は、常に絶対インポート パスを使用する必要があります。
以上がGOPATH/src 内で相対パスを使用するとインポート エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。