ホームページ > バックエンド開発 > Golang > 別の Go パッケージ内の関数が未定義なのはなぜですか?

別の Go パッケージ内の関数が未定義なのはなぜですか?

DDD
リリース: 2024-12-16 06:51:10
オリジナル
650 人が閲覧しました

Why is my function in a separate Go package undefined?

別のパッケージの関数が定義されていません

指定されたコード構造では、別の lib.go ファイルで定義された関数が定義されたものとして認識されませんmain.go ファイルから呼び出された場合。問題を調査して解決策を見つけてみましょう。

go build main.go を使用して main.go をコンパイルしようとすると、「未定義: テスト」エラーが発生します。これは、Test 関数が lib.go で定義されており、main.go とは別のパッケージ (「main」という名前) にあるためです。

Go では、パッケージは独立した名前空間であり、関数は 1 つのパッケージで定義されます。明示的にインポートしない限り、別のパッケージ内の関数から直接アクセスすることはできません。この問題を解決するには、次のいずれかを実行できます。

  • より具体的なインポート ステートメントを使用します。 main.go で、 import "packagetest/" を追加して lib パッケージをインポートします。 lib" をファイルの先頭に追加します。
  • 完全なパッケージ パスを使用します: main.go で、Test() を次のように置き換えます。 packagetest.lib.Test() を使用して、Test 関数が定義されている完全なパッケージ パスを明示的に示します。
  • プロジェクト全体をビルドします: go build main.go の代わりに、 go build at を実行します。必要なすべてのファイルをビルドするためのプロジェクト ルート。これにより、コンパイラが lib.go ファイルを見つけてインポートできるようになります。

以上が別の Go パッケージ内の関数が未定義なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート