Heim > Backend-Entwicklung > Golang > Warum ist meine Funktion in einem separaten Go-Paket undefiniert?

Warum ist meine Funktion in einem separaten Go-Paket undefiniert?

DDD
Freigeben: 2024-12-16 06:51:10
Original
651 Leute haben es durchsucht

Why is my function in a separate Go package undefined?

Funktion in separatem Paket nicht definiert

In der angegebenen Codestruktur wird eine in einer separaten lib.go-Datei definierte Funktion nicht als definiert erkannt beim Aufruf aus der main.go-Datei. Lassen Sie uns das Problem untersuchen und eine Lösung finden.

Beim Versuch, main.go mit go build main.go zu kompilieren, tritt der Fehler „undefiniert: Test“ auf. Dies liegt daran, dass die Testfunktion in lib.go definiert ist, das sich in einem anderen Paket (mit dem Namen „main“) als main.go befindet.

In Go sind Pakete isolierte Namespaces und Funktionen, die in einem Paket definiert sind Funktionen in einem anderen Paket können ohne explizite Importe nicht direkt darauf zugreifen. Um dieses Problem zu beheben, können Sie einen der folgenden Schritte ausführen:

  • Verwenden Sie eine spezifischere Importanweisung: Importieren Sie in main.go das lib-Paket, indem Sie import „packagetest/“ hinzufügen. lib“ am Anfang der Datei.
  • Verwenden Sie den vollständigen Paketpfad: Ersetzen Sie in main.go Test() durch packagetest.lib.Test(), um explizit den vollständigen Paketpfad anzugeben, in dem die Testfunktion definiert ist.
  • Erstellen Sie das gesamte Projekt: Anstelle von go build main.go führen Sie go build at aus das Projektstammverzeichnis, um alle erforderlichen Dateien zu erstellen. Dadurch kann der Compiler die lib.go-Datei finden und importieren.

Das obige ist der detaillierte Inhalt vonWarum ist meine Funktion in einem separaten Go-Paket undefiniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage