Ich kann nicht verstehen, wie man Go-Code in mehreren Dateien kompiliert
Fabien
OK, das Hauptverkaufsargument von Go ist die einfache Kompilierung und die wunderbare Toolchain, aber als Neuling bin ich dort wirklich verloren und kann die Dokumentation zu diesem Punkt nicht verstehen.
Ich habe ein Stack-Toy-Beispiel in zwei Dateien (eine für die Typdefinition und Methoden, aufgerufen stack.go
, eine für das Hauptprogramm, aufgerufen main.go
), beide befinden sich in meinem GOPATH/src/stacker
Verzeichnis.
- Wie soll jede Datei benannt werden? Hat es überhaupt eine Bedeutung? Gibt es mindestens eine Konvention? Eine obligatorische Benennung?
- Wie sollte der Paketname sein? Ich habe verstanden, dass sie den gleichen Paketnamen verwenden sollten, aber welcher? Ist es
stacker
? - In
main.go
, wie soll ich die verwendenimport
Richtlinie zu importierenstack.go
?
Ich habe viele Kombinationen ausprobiert, von denen bisher keine funktioniert hat.
Erik Aigner
- Sie können die Dateien nennen , wie Sie wollen, passen nur spezielle Endungen wie
_test
und_<arch>
(_darwin
,_unix
usw.). Beachten Sie auch, dass Dateien mit dem Präfix.
oder_
nicht in das Paket kompiliert werden! - Es wird empfohlen, dass Sie das Paket wie den Ordner benennen, in dem sich die Datei befindet, obwohl es möglich (aber verwirrend) ist, ein Paket in der Deklaration anders zu benennen
package mypkg
- Befindet
stack.go
sich im selben Ordner / Paket wiemain.go
, müssen Sie nicht importieren. Alles, was in delcaredstack.go
ist, ist bereits in verfügbarmain.go
, da es sich im selben Paket befindet.
Wenn stacker
in eine ausführbare Datei kompiliert werden soll, sollten Sie verwenden package main
.