2 回答
TA贡献1909条经验 获得超7个赞
您正在创建一个全局变量存储,而您很可能希望将其封装在您的 Routes 结构中:
package main
type Routes struct{
store map[string][]byte
}
func NewRoutes() *Routes {
return &Routes{
store: make(map[string][]byte),
}
}
func (c *Routes) SetRoutes(key string, routes []byte) error {
c.store[key] = routes
return nil
}
func main() {
routes := NewRoutes()
routes.SetRoutes("key", []byte("routes"))
}
请参阅:https ://go.dev/play/p/3M4kAfya6KE 。这确保地图的范围限定为您的 Routes 结构并且仅初始化一次。
TA贡献1826条经验 获得超6个赞
您可以检查它是否存在nil以及make是否存在:
func (c *Routes) SetRoutes(key string, routes []byte) error {
if store == nil {
store = make(map[string][]byte)
}
store[key] = routes
return nil
}
或者,只需在mainfunc 中进行:
func main() {
store = make(map[string][]byte)
routes := NewRoutes()
routes.SetRoutes("key", []byte("routes"))
}
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报