我想知道是否应该创建一个新的 ServeMux 并将其注册到http.Server
或者我应该直接调用http.HandleFunc
and http.Handler
?
我认为使用 ServeMux 的路由更好,因为http.HandleFunc
显然会混淆 HTTP 包的全局状态,这在 Go 中被认为是不好的做法。但是,在很多教程中,甚至是官方教程中,我经常看到使用的http.HandleFunc
路由。
这让我想知道:为什么要http.HandleFunc
在有 a 时使用ServeMux
?我知道 ServeMux 有一些优势(例如,您可以嵌套它而无需一直重复前缀)但我想知道为什么我应该选择http.HandleFunc
Multiplexer,尤其是因为在内部HandleFunc
使用 a ServeMux
。
编辑:正如评论中所承诺的,我已经要求弃用Golang-dev上的附加(和无用的 IMO 功能) ,他们说不(好吧,有人说不)。链接在这里。