我有一些HTTP请求,它们共享许多常用功能:
package main
import (
"net/http"
"mypackage"
)
func main() {
http.HandleFunc("/myurl1", func(w http.ResponseWriter, r *http.Request) {
mypackage.Common()
mypackage.Different1()
})
http.HandleFunc("/myurl2", func(w http.ResponseWriter, r *http.Request) {
mypackage.Common()
mypackage.Different2()
})
http.ListenAndServe(":8080", nil)
}
我可以在/myurl
处使用变量,并使用切换用例来减少代码重复,如下所示:
package main
import (
"net/http"
"mypackage"
)
func main() {
http.HandleFunc(variable string, func(w http.ResponseWriter, r *http.Request) {
mypackage.Common()
switch variable {
case "myurl1":
mypackage.Different1()
case "myurl2":
mypackage.Different2()
}
})
http.ListenAndServe(":8080", nil)
}
您可以先路由到/,然后根据路径调用Different1或Different2。请参考this代码。