ホームページ >バックエンド開発 >Golang >Go で特定の型をインポートすると「インポートされましたが使用されていません」および「未定義」エラーが発生するのはなぜですか?

Go で特定の型をインポートすると「インポートされましたが使用されていません」および「未定義」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-15 12:03:02287ブラウズ

Why Am I Getting

インポート パッケージとタイプ

質問:

次のプロジェクト構造内:

src
|-->config
       |--> config.go
|-->otherPackage
       |--> otherFile.go
|-->main.go

config.go で定義された型があり、otherFile.go で使用する必要があります。ただし、次のステートメントを使用してインポートしようとすると、エラーが発生します:

import (
    "fmt"
    "math"
    "../config"
)

特定のエラーは次のとおりです:

  • インポートされ、使用されていません。
  • 未定義: Config

型 Config が関数宣言で使用されているにもかかわらず。

根本的な問題は何ですか?

答え:

この問題は、パッケージから特定のタイプのみをインポートしようとしたことが原因で発生します。 Go では、パッケージから特定の要素をインポートすることはできません。パッケージをインポートするときは、基本的にその内容全体をインポートすることになります。

この場合、Config タイプが定義されているパッケージの名前は config であるため、これをインポートすると、そのタイプとその他の識別子が config 名前空間で使用できるようになります。 。たとえば、Config を使用するには、config.Config として参照する必要があります。

したがって、問題を解決するには、次のいずれかの解決策を使用できます:

  • config 変数の名前を変更します: otherFile.go には、インポートされたパッケージをシャドウする config という名前の変数があるため、競合を避けるために名前を変更する必要があります。
  • 修飾名を使用して Config を参照します。 名前変更がオプションではない場合でも、Config 型をその修飾名 (config.Config.
) で参照することで引き続き使用できます。

以上がGo で特定の型をインポートすると「インポートされましたが使用されていません」および「未定義」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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