Ich baue eine einfache App und nach dem Lesen des Dokuments über die Strukturierung Go-Anwendungen, bin ich immer noch verwirrt.Strukturierung lokaler Importe ohne Github in Golang
Ich möchte diese Struktur:
- Praxis
- Modelle (als Modelle verpackt)
- ein
- b
- Router (verpackt als Router)
- ein
- b
- Modelle (als Modelle verpackt)
app.go
Innerhalb von app.go
, ich habe folgendes:
package main
import (
"net/http"
// I have tried the following:
"practice/models/a"
"practice/models/b"
"practice/models"
"$GOPATH/practice/models/a"
"$GOPATH/practice/models/b"
"$GOPATH/practice/models"
...
)
func main() {
http.HandleFunc("/a", AHandler)
http.HandleFunc("/b", BHandler)
http.ListenAndServe(":8080", nil)
}
Die A- und B-Modelle aussehen so:
package models
import "net/http"
func AHandler(w http.ResponseWriter, r *http.Request) {
// code
}
Zwei Fragen:
Was in der Welt ist der richtige Weg, um diese Dateien zu importieren? Muss ich sie wirklich zu Github schieben, um sie referenzieren zu können? Ich verstehe, dass $ GOPATH der Namespace für den gesamten Arbeitsbereich auf einem lokalen Computer ist. Mein $ GOPATH enthält dieses Verzeichnis.
Muss ich eine Hauptmethode innerhalb dieser Dateien definieren? Kann ich nur eine einzelne Funktion exportieren und die Handling-Funktion haben?
Danke.
Ich habe die docs konsultiert
Vielen Dank! Ich weiß, dass es einfach scheint, aber aus dynamischen, entenartigen Sprachen zu kommen, hat in dieser Hinsicht nicht geholfen. Das macht eine Menge Sinn. Und wenn Sie die Dokumentation nach Ihrer Erklärung noch einmal lesen, scheint das einfach zu sein. – user3162553