Ein Beispiel aus der Go documentation for net/http
.
Hier ist ein einfacher Web-Server den Pfad Umgang /hello
:
package main
import (
"io"
"net/http"
"log"
)
// hello world, the web server
func HelloServer(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "hello, world!\n")
}
func main() {
http.HandleFunc("/hello", HelloServer)
log.Fatal(http.ListenAndServe(":12345", nil))
}
Bemerken Sie, dass die Funktion HelloServer
definiert ist nur auf den Aufruf zu http.HandleFunc
in der ersten Zeile von main
weitergegeben werden? eine anonyme Funktion mit diesem stattdessen geschrieben werden könnte:
package main
import (
"io"
"net/http"
"log"
)
func main() {
http.HandleFunc("/hello", func (w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "hello, world!\n")
})
log.Fatal(http.ListenAndServe(":12345", nil))
}
Wenn eine Funktion braucht nur an einer Stelle verwendet werden soll, könnte es eine gute Idee sein, eine anonyme Funktion zu nutzen, vor allem, wenn sein Körper klein ist.
'Ich bin neu in der Sprache und funktionale Programmierung. - Go ist keine funktionale Sprache. – Flimzy
"die Vorteile aufzählen" ist sowohl zu breit als auch auf der Grundlage von Meinungen. Versuchen Sie eine Websuche nach * verwendet für anonyme Funktionen * oder etwas. – Adrian
Ich habe nie gesagt, dass go eine funktionale Sprache ist. Ich sagte nur, ich bin neu in der Idee der funktionalen Programmierung und Go. –