ホームページ >バックエンド開発 >Golang >Go で兄弟モジュールを作成するとエラーが発生するのはなぜですか?

Go で兄弟モジュールを作成するとエラーが発生するのはなぜですか?

王林
王林転載
2024-02-09 12:57:091110ブラウズ

为什么在 Go 中创建同级模块时会出现错误?

Go 言語では、兄弟モジュールを作成する際のエラーがよくある問題です。この問題の原因は通常、モジュール内の名前空間の競合によるものです。同じディレクトリに同じ名前の 2 つのモジュールを作成すると、Go コンパイラーはこれを競合とみなし、エラーを引き起こします。この問題の解決策は、名前空間の競合を避けるために、これらのモジュールを別のディレクトリに配置することです。さらに、パッケージ エイリアスを使用してモジュールの競合を解決することもできます。いずれかのモジュールにエイリアスを与えることで、名前空間の競合を回避し、兄弟モジュールを正常に作成できます。実際の開発では、このエラーを回避するために、モジュール名の標準化に注意し、同じ名前のモジュールを避ける必要があります。

質問の内容

これは私のファイル システムです:

リーリー

モジュールをインストールしました。これが私の HelloWorld/go.mod です:

リーリー

と go.sum:

リーリー

エラーは次のとおりです。 rsc.io/quote/v4 をインポートできません (パッケージ "rsc.io/quote/v4" が GOROOT または GOPATH に見つかりません) そして 未定義: quotecompilerUndeclaredName

GoQuote ディレクトリを作成し、

go mod init example.com/GoQuote コマンドを実行するまで、エラーは発生しませんでした。 私は Go を初めて使用するので (最初の 1 時間です!)、何が問題なのかわかりません。

すべてのファイルを保存しようとしましたが (VS コードを使用しています)、成功しませんでした。

回避策

問題はファイル システムの構造のようです...

に変更すると、 リーリー

その場合、エラーは発生しません。

以上がGo で兄弟モジュールを作成するとエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。