golang 包“net/http”使用全局变量 DefaultServeMux 来注册处理程序。这是否被认为是一种好的做法,甚至是一个 golang 成语?毕竟它是一个全局变量吗?
不使用全局变量的两个主要原因是 AFAIK 1)它们增加了复杂性和 2)在并发程序中存在问题。
也许 1) 在这种情况下被认为不重要,因为开发人员可以选择不使用 DefaultServerMux?2)呢?全局变量在 Go 中总是线程/goroutine 安全吗?不过,我很惊讶 Go 的标准库中使用了它。我从未在其他语言/标准库中看到过这种做法。