In Go wird ein lokaler Import verwendet, um ein Paket aus demselben Verzeichnis oder einem Unterverzeichnis des zu importieren aktuelles Arbeitsverzeichnis. Diese Technik kann jedoch nicht angewendet werden, wenn ein nicht-lokales Paket importiert wird, was durch den Fehler „lokaler Import „./greeting“ in einem nicht-lokalen Paket“ angezeigt wird.
Um den Fehler zu verstehen, untersuchen wir die bereitgestellte Dateistruktur:
/Users/clarkj84/Desktop/LearningGo └── src └── jacob.uk.com ├── greeting │ └── greeting.go └── helloworld.go
Das Problem tritt auf, wenn versucht wird, go install jacob.uk.com auszuführen aus dem src-Verzeichnis. Dieser Befehl versucht, das Paket jacob.uk.com zu installieren, das den ./greeting-Import in helloworld.go enthält. Go interpretiert dies jedoch als lokalen Import, da er aus dem src-Verzeichnis ausgeführt wird, während sich das Paket selbst nicht in src befindet.
Um den Fehler zu beheben, stehen zwei Optionen zur Verfügung :
import "jacob.uk.com/greeting"
Dieser Ansatz ermöglicht den Import und die Verwendung des Pakets unabhängig vom Arbeitsverzeichnis.
Absolute Importe bieten mehrere Vorteile gegenüber lokalen Importen:
Das obige ist der detaillierte Inhalt vonWarum schlägt der „lokale Import' beim Importieren eines nicht lokalen Go-Pakets fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!