在我的main函数中,我正在创建一个传递给结构的地图,该地图将仅用于多个处理程序和辅助函数的读取。
我是否需要使用互斥锁保护map[string]interface{}
?
type SomeStruct struct {
content map[string]interface{}
}
var ss *SomeStruct
func main() {
m := map[string]interface{}{"s1": "string", "s2": 1}
ss = &SomeStruct{m}
http.HandleFunc("/s1", Handler1)
http.HandleFunc("/s2", Handler2)
http.ListenAndServe(":8081", nil)
}
func Handler1(w http.ResponseWriter, r *http.Request) {
fmt.Println(ss.content["s1"].(string))
}
func Handler2(w http.ResponseWriter, r *http.Request) {
fmt.Println(ss.content["s2"].(int))
}
我在构建和运行上面的代码时尝试添加-race
标志,但没有检测到任何内容。