Bei der Arbeit mit Go ist die Einhaltung etablierter Konventionen von entscheidender Bedeutung. Vor ihrer wirksamen Umsetzung ist es jedoch von größter Bedeutung, diese Konventionen zu verstehen. In diesem Artikel wird eine häufig gestellte Frage zur Paketstruktur von Go behandelt.
Einrichtung: Gemäß der empfohlenen Projektstruktur haben wir haben:
$GOPATH/ src/ github.com/ username/ projectname/ main.go numbers/ rational.go real.go complex.go
main.go:
package main import ( "fmt" "./numbers" ) func main() { fmt.Println(numbers.Real{2.0}) }
Fragen:
1. package.go-Datei
Die Annahme, dass jedes Paketverzeichnis eine package.go-Datei erfordert, ist falsch. In Go werden Dateien in einem einzelnen Verzeichnis automatisch in einem Paket gruppiert. Das Erstellen einer package.go-Datei ist nicht erforderlich.
2. Importieren von Dateien innerhalb eines Pakets
Go unterstützt das Importieren von Dateien nicht. Paketnummern sollten direkt importiert werden und nicht einzelne Dateien wie rational.go, real.go und complex.go. Entfernen Sie in unserem Beispiel das Präfix ./ und verwenden Sie import „github.com/username/projectname/numbers“.
3. Freigabetypen
Typen wie Real sollten in einer Datei innerhalb des Pakets definiert werden, z. B. real.go. Da die Dateien zum selben Paket gehören, ist keine zusätzliche Importanweisung erforderlich. Der Zugriff auf den Real-Typ in main.go als fmt.Println(numbers.Real{2.0}) ist korrekt.
Das obige ist der detaillierte Inhalt vonGo-Paketstruktur: Benötigen wir eine „package.go'-Datei, wie importiert man interne Dateien und können wir dateiübergreifend auf Typen zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!