ホームページ >バックエンド開発 >Golang >Go が「非ローカル パッケージのローカル インポート」エラーを返すのはなぜですか?またその解決方法は何ですか?

Go が「非ローカル パッケージのローカル インポート」エラーを返すのはなぜですか?またその解決方法は何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-13 19:34:23313ブラウズ

Why Does Go Return a

Go パッケージのローカル インポート

Go では、import ステートメントを使用してパッケージをインポートします。パッケージは、コードを論理ユニットに編成するために使用されます。パッケージをインポートするときは、ローカル インポートまたは非ローカル インポートを使用できます。

ローカル インポートでは、現在の作業ディレクトリからパッケージがインポートされます。非ローカルインポートでは、別のディレクトリからパッケージがインポートされます。

エラー

次のファイル構造です:

.
├── bin
│   └── hello
├── pkg
└── src
    └── jacob.uk.com
        ├── greeting
        │   └── greeting.go
        └── helloworld.go

次の GOPATH:

/Users/clarkj84/Desktop/LearningGo

src内で以下のコマンドを実行するとフォルダー:

/usr/local/go/bin/go install jacob.uk.com

次のエラーが表示されます:

local import "./greeting" in non-local package

このエラーは、ローカル以外のパッケージでローカル インポートを使用しているために発生します。

解決策

このエラーを修正するには、作業ディレクトリを src/jacob.uk.com に変更し、go install を実行せずに実行します。パッケージを指定します。次の内容を含む helloworld.go ファイルがある場合:

package main

import "./greeting"

func main() {

}

「インポートされ、使用されていません」というコンパイル エラーが発生します。インポートされたグリーティング パッケージの何かを使用すると、コンパイルされるはずです。

ただし、ローカル インポートの使用はお勧めしません。代わりに、次の import ステートメントを使用する必要があります:

import "jacob.uk.com/greeting"

この import ステートメントを使用すると、どこからでもコードをコンパイル、実行、インストールできるようになります。

以上がGo が「非ローカル パッケージのローカル インポート」エラーを返すのはなぜですか?またその解決方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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