golang Verwendung von Funktionen aus importierten Unterverzeichnisse
Kann ich nicht verwenden, Funktionen der benutzerdefinierten Unterverzeichnisse.
Mein Code Organziation
Habe ich unter "src" Pfad-Hierarchie wie
a/b
alle meine Verzeichnisse und go-Dateien (es ist die "Wurzel" von meinem Projekt). Die Verzeichnisse enthalten keine Unterverzeichnisse, und es funktioniert gut. Also der tiefste Pfad "a/b/c". E. g. Ich habe
a/b/c
und
a/b/d
mit einigen go-Dateien. Import von "a - /b - /d" und den Aufruf einer Funktion mit "d".DoSomething()" aus einer Datei in "a/b/c" funktioniert gut.
Problem Beschreibung
Ich will jetzt ot reorganisieren "a/b/d". Ich verschieben Sie einige Dateien aus "a/b/d" zu
a/b/d/e
und den rest der Dateien zu
a/b/d/f
Wenn Sie versuchen, importieren Sie "a/b/d/e" mit der import-Anweisung
importieren ( "a/b/d/e" )
aus der gleichen Datei in "/a/b/c" und nennen wollen "e.DoSomething()" (es ist der Ort, wo die Datei mit den "DoSomething"-Funktion verschoben), ich bekomme eine Fehlermeldung bei der Zeile, wo ich Sie nenne, "e.DoSomething()": "undefined": e".
Während der Suche nach einem Ergebnis habe ich nirgends gesehen, Beispiele mit tiefer Pfad Hierarchien. Ist es generell nicht möglich/import Unterverzeichnisse oder was ist das problem?
go-version habe ich verwendet: go1.2.2 linux/amd64
Vielen Dank für alle Ratschläge
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deine Herangehensweise ist komplett falsch. Gehen hat absolut kein Konzept für den Import von Dateien oder Verzeichnissen, die alle, die Sie importieren können, im Gehen, sind die Pakete. Es jetzt passiert, dass der name des Paketes ist es ein Pfad relativ zum GOPATH und importieren Sie die Pakete mit diesem Namen. Aber der Bezeichner, unter dem Sie eine importierte Paket ist verfügbar in dem Import-code hängt von der Paket-Deklaration des Pakets. Man kann nicht einfach "verschieben" von Dateien zwischen Verzeichnissen, die von jedem Verzeichnis (für den go-tool) ist ein einzelnes Paket ohne änderung der Paket-Deklaration.
Können Sie
package x
unter dem Pfada/b/c
. Wenn Sie import-Paket-x mitimport ( "a/b/c" )
alle exportierten Sachen aus dem Paket x steht für Sie alsx.ExportedName
.Bitte Lesen Sie http://blog.golang.org/organizing-go-code gezielt.
Versuchen Sie es und gehen Sie zu bauen, die in
a/b/d/e
ersten, bevor Sie versuchen zu bauen, ina/b
: generiert die kompilierten Klassen, die Sie importieren möchten.