ホームページ バックエンド開発 Golang Go でサブパッケージをインポートする方法: 「No Go Files」エラーが表示された場合はどうすればよいですか?

Go でサブパッケージをインポートする方法: 「No Go Files」エラーが表示された場合はどうすればよいですか?

Nov 18, 2024 pm 07:29 PM

How to Import Subpackages in Go:  What to Do When You Get the

Go でのサブパッケージのインポート: 「No Go Files」エラーへの対処

Go では、親ディレクトリを参照してサブパッケージを直接インポートすることはできません。サポートされました。ただし、「[親ディレクトリ] に Go ファイルがありません」という一般的なエラー メッセージに対処する別のアプローチもあります。

次のシナリオを考えてみましょう:

package main

import "one/entities/bar"

func main() {

}
ログイン後にコピー

このディレクトリ構造では、

- one
   - entities
      - bar
         - file.go
ログイン後にコピー

go install main を使用してプロジェクトをビルドしようとすると、サブパッケージ ディレクトリに Go ファイルがないことを示すエラーが発生します。この問題を解決するには、インポート ステートメントには明示的なパッケージ名またはパスが必要であるため、ワイルドカード構文を使用してサブパッケージをインポートすることはできません。

サブパッケージを正しくインポートするには、各サブパッケージを個別にインポートする必要があります。たとえば、bar サブパッケージをインポートするには、main.go ファイルを次のように変更します。

package main

import (
    "one/entities/bar/file1"
    "one/entities/bar/file2"
)

func main() {

}
ログイン後にコピー

または、カスタム インポート パスを使用して、関連するサブパッケージを 1 つのインポート ステートメントにグループ化することもできます。これにより、読みやすさが向上し、インポート行数が削減されます。これを実現するには、one/entities ディレクトリ内に import という名前のディレクトリを作成し、その中に init.go という名前のファイルを配置します。 init.go ファイル内で、カスタム インポート パスを定義し、必要なサブパッケージをインポートします:

// import/init.go
package entities

import (
    _ "one/entities/bar/file1"
    _ "one/entities/bar/file2"
)
ログイン後にコピー

次に、main.go ファイルで、カスタム インポート パスを使用してエンティティ パッケージをインポートします:

// main.go
package main

import (
    "log"
    "one/entities"
)

func main() {
    v := entities.Bar_file1.Get.Basic.Req.Headers{}
    log.Fatal(v)
}
ログイン後にコピー

これらのアプローチに従うことで、Go にサブパッケージを適切にインポートし、「Go ファイルがありません」エラーを解決し、コードを読みやすくするためにインポートを整理することができます。

以上がGo でサブパッケージをインポートする方法: 「No Go Files」エラーが表示された場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか? Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか? Mar 03, 2025 pm 05:17 PM

Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか? GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか? Mar 10, 2025 pm 05:38 PM

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

Beegoフレームワークのページ間で短期情報転送を実装する方法は? Beegoフレームワークのページ間で短期情報転送を実装する方法は? Mar 03, 2025 pm 05:22 PM

Beegoフレームワークのページ間で短期情報転送を実装する方法は?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか? トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか? Mar 10, 2025 pm 05:36 PM

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか? GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか? Mar 10, 2025 pm 03:20 PM

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

Go言語でファイルを便利に書く方法は? Go言語でファイルを便利に書く方法は? Mar 03, 2025 pm 05:15 PM

Go言語でファイルを便利に書く方法は?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は? MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は? Mar 03, 2025 pm 05:18 PM

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

Linterと静的分析ツールを使用して、GOコードの品質と保守性を向上させるにはどうすればよいですか? Linterと静的分析ツールを使用して、GOコードの品質と保守性を向上させるにはどうすればよいですか? Mar 10, 2025 pm 05:38 PM

Linterと静的分析ツールを使用して、GOコードの品質と保守性を向上させるにはどうすればよいですか?

See all articles