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