Ich bin neu in Go (aber nicht bei der Programmierung), ich liebe die Sprache, aber ich habe ein wenig Probleme vollständig zu verstehen, wie ich interne Bibliotheken in einer Anwendung machen soll durch Pakete. Als Referenz ist es gut, externe Pakete zu erhalten und dann zu importieren/zu verwenden.Importieren von lokalen Bibliothek und Dateien in einer Anwendung
Sagen wir, ich mache eine Anwendung A.
/home/me/A/a.go (package main)
Dann merke ich, zu sein a.go zu beginnen ziemlich groß, so schneide ich sie in zwei Teile
/home/me/A/a.go (package main)
/home/me/A/b.go (package main)
Wie bin Ich soll b.go von a.go importieren/einbinden, um seine Funktion verfügbar zu machen?
Als Fortsetzung der Frage, in der A bin ich Manipulation viele Objekte O, so denke ich, es wäre viel besser, wenn ich ihnen nur ihr eigenes Paket geben und die Funktionen in einer öffentlichen/exportierten API kapseln . Wie mache ich das ?
Ich habe versucht, ./lib/o.go
(Paket o) Erstellen und import lib/o
aber ich erhalte immer Fehler wie
./a.go:6: imported and not used: "o"
./a.go:43: undefined: o
Ich habe keine GOPATH in meinem env aber ich versuchte export GOPATH=$GOPATH:/home/me/A
und es hat nicht das Ergebnis zu ändern.
Ich habe versucht, den Artikel über „go-Layout“, aber es fühlte sich ein wenig zu überwältigend auf einmal und ich würde wirklich gerne eine einfachere Erklärung dieser einen „kleinen“ Schritt Ich versuche zu lesen
zu machen Vielen Dank !
GOPATH/src/me/a/a.go:
package main
func main() {
test()
}
GOPATH/src/me/a/test.go:
package main
import "fmt"
func test() {
fmt.Println("test func !")
}
Exec:
$ go run a.go
# command-line-arguments
./a.go:4: undefined: test
EDIT: habe meine Antwort hier: https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/qysy2bM_o1I
E Wenn alle Dateien ausgeführt werden, gehen Sie in den Lauf (go run a.go test.go
) oder verwenden Sie go build
und führen Sie die resultierende ausführbare Datei aus.
Wenn sich beide Dateien im selben Verzeichnis befinden, bilden sie ein Paket. Es sind keine Importanweisungen erforderlich, um Symbole in verschiedenen Dateien desselben Pakets deklarieren zu lassen. – fuz
@FUZxxl: Können Sie sich das Beispiel anschauen, das ich am Ende meiner Frage hinzugefügt habe? Ich scheine es nicht funktionieren zu lassen, ich schätze, ich mache etwas so offensichtlich falsch, dass es mich überkommt. Danke – user933740
Beantworten Sie mich, aber habe meine Antwort hier: https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/qysy2bM_o1I Listen Sie entweder alle Dateien in go run ('go run a.go test. Go ") oder" go build "verwenden und die resultierende ausführbare Datei ausführen. – user933740