ホームページ >バックエンド開発 >Golang >相対パスを使用して Go でローカル パッケージを正しくインポートするにはどうすればよいですか?

相対パスを使用して Go でローカル パッケージを正しくインポートするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-22 03:06:10811ブラウズ

How Can I Correctly Import Local Packages in Go Using Relative Paths?

Go でローカル パッケージに相対インポートを使用する

Go でコード パッケージをローカライズする場合、それらのインポートが困難になることがあります。この質問では、開発者が相対パスを使用してローカル パッケージをインポートしようとしているときにエラーが発生する問題について説明します。

提供された例では、開発者はローカル パッケージの共通とルーターを /home/me/go/ からインポートしようとしました。相対インポートステートメントを使用した src/myapp ディレクトリ。ただし、これらのインポートは、ローカル以外のパッケージではローカル インポートが許可されていないことを示すエラーで失敗しました。

さらに、相対パスなしでパッケージ名を使用すると、コンパイラはパッケージが見つからないことを報告しました。

解決策は、Go インポート パスを理解することにあります。デフォルトでは、Go はインポート検索パスを $HOME/go/src から開始します。これは、パッケージがこのディレクトリの直下またはサブディレクトリ内に配置される必要があることを意味します。

この場合、ローカル パッケージの common およびルーターは $HOME/go/src の直下には配置されません。インポートの問題を解決するには、開発者はパッケージのインポート パスの先頭にプロジェクト名 myapp を追加する必要があります。

したがって、正しいインポート ステートメントは次のようになります。

import (
    "log"
    "net/http"
    "myapp/common"
    "myapp/routers"
)

この変更により、 Go インポート パスはローカル パッケージに正しく解決され、エラーが解消されます。

以上が相対パスを使用して Go でローカル パッケージを正しくインポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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