Считается ли использование «net / http» глобальных переменных хорошей практикой в golang?

Пакет "Голанг"сеть / HTTP» использует глобальную переменную DefaultServeMux для регистрации обработчиков. Это считается хорошей практикой или даже идиомой голанга? В конце концов, это глобальная переменная?

Две основные причины не использовать глобальные переменные - AFAIK 1), что они добавляют сложности и 2) проблематично в параллельных программах.

Может быть, 1) не считается важным в этом случае, потому что разработчик может не использовать DefaultServerMux? Как насчет 2)? Являются ли глобальные переменные всегда безопасными для работы с потоками / программами в Go? Тем не менее, яЯ удивлен, что этоиспользуется в Goстандартная библиотека. Я'никогда не видел такой практики в других языках / стандартных библиотеках.

Ответы на вопрос(2)

Ваш ответ на вопрос