您只需要一个构造函数。常用的模式是
func NewSyncMap() *SyncMap { return &SyncMap{hm: make(map[string]string)}}如果结构中有更多字段,启动goroutine作为后端或注册终结器,则可以在此构造函数中完成所有操作。
func NewSyncMap() *SyncMap { sm := SyncMap{ hm: make(map[string]string), foo: "Bar", } runtime.SetFinalizer(sm, (*SyncMap).stop) go sm.backend() return &sm}


