問題:
ユーザーが別のパッケージから型をインポートするときに問題が発生しましたGo プロジェクトの構造。 import ステートメントでは、型が関数宣言で使用されている場合でも、未使用のインポートまたは未定義の型に関する警告が表示されます。
プロジェクト構造:
src |-- config |-- config.go |-- otherPackage |-- otherFile.go |-- main.go
輸入試行:
import ( "fmt" "math" "../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 サイトの他の関連記事を参照してください。