ホームページ >バックエンド開発 >Golang >Go で特定の型をインポートできないのはなぜですか?

Go で特定の型をインポートできないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-14 22:24:02286ブラウズ

Why Can't I Import a Specific Type in Go?

パッケージと型のインポート

問題:

ユーザーが別のパッケージから型をインポートするときに問題が発生しましたGo プロジェクトの構造。 import ステートメントでは、型が関数宣言で使用されている場合でも、未使用のインポートまたは未定義の型に関する警告が表示されます。

プロジェクト構造:

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

輸入試行:

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

エラー:

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

原因:

この問題は、インポート構文が正しくないために発生します。 Go では、パッケージから特定の型や関数をインポートすることはできません。パッケージ全体のみをインポートできます。

解決策:

問題を解決するには、インポート ステートメントを次のように変更する必要があります:

import (
    "fmt"
    "math"
    "full/import/path/of/config"
)

パッケージと型の参照:

パッケージ全体がインポートされるため、型は完全修飾名を使用して参照する必要があります:

func function(... config.Config) {}

変数シャドウイング:

インポートされたパッケージと同じ名前の変数が現在のパッケージで宣言されている場合スコープの場合、パッケージをシャドウします。これを回避するには、変数の名前を別の名前 (

func function(... config.Config) {}
var cfg config.Config
など) に変更します。

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

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