Ich versuche String an Handler im gegebenen Beispiel zu übergeben. HierZusätzliche Argumente für die http-Funktion Golang
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
ist, was ich versucht, aber es wirft einen Fehler, da es regelmäßige Anzahl der Argumente erwartet:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request, s *string) {
fmt.Fprintf(w, "Hi there, I love %s!", *s)
}
func main() {
files := "bar"
http.HandleFunc("/", handler(&files))
http.ListenAndServe(":8080", nil)
}
Ich mag diese Antwort wirklich, aber ich bin nicht sicher, wie man es in ein Array von Strings <. <. – GoHttp
Ändern Sie einfach 'Files string' in' Files [] string' und instanziieren Sie die Struktur mit Ihrem Array. –
Wenn Sie die Dateien dynamisch abrufen möchten, können Sie einfach eine andere Funktion hinzufügen wie 'func (fh * FilesHandler) GetFiles() [] string {// Machen Sie etwas, um Ihr String-Array von Dateien zu erhalten}' und rufen Sie es in 'handler' auf wie 'fh.GetFiles()' –