Heim > Backend-Entwicklung > Golang > Go-Paketstruktur: Benötigen wir eine „package.go'-Datei, wie importiert man interne Dateien und können wir dateiübergreifend auf Typen zugreifen?

Go-Paketstruktur: Benötigen wir eine „package.go'-Datei, wie importiert man interne Dateien und können wir dateiübergreifend auf Typen zugreifen?

Barbara Streisand
Freigeben: 2024-11-26 04:04:08
Original
492 Leute haben es durchsucht

Go Package Structure: Do We Need a `package.go` File, How to Import Internal Files, and Can We Access Types Across Files?

Go-Sprachpaketstruktur: Eine ausführliche Erklärung

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.

Frage

Einrichtung: Gemäß der empfohlenen Projektstruktur haben wir haben:

$GOPATH/
  src/
    github.com/
      username/
        projectname/
          main.go
          numbers/
            rational.go
            real.go
            complex.go
Nach dem Login kopieren

main.go:

package main

import (
  "fmt"
  "./numbers"
)

func main() {
  fmt.Println(numbers.Real{2.0})
}
Nach dem Login kopieren

Fragen:

  • Benötigen wir eine package.go-Datei in jedem Paketordner?
  • Wie importieren wir Dateien innerhalb desselben Pakets in zahlen.go?
  • Können wir Typen wie Real in real.go definieren und in main.go als fmt.Println(numbers.Real{2.0}) darauf zugreifen?

Antwort

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage