如何在Go结构中初始化成员

我是Golang的新手,所以分配它会让我发疯:


import "sync"


type SyncMap struct {

        lock *sync.RWMutex

        hm map[string]string

}

func (m *SyncMap) Put (k, v string) {

        m.lock.Lock()

        defer m.lock.Unlock()


        m.hm[k] = v, true

}

然后,我打电话给:


sm := new(SyncMap)

sm.Put("Test, "Test")

这时我得到了nil指针恐慌。


我通过使用另一个函数来解决该问题,并在之后立即调用它new():


func (m *SyncMap) Init() {

        m.hm = make(map[string]string)

        m.lock = new(sync.RWMutex)

}

但是我想知道,是否有可能摆脱这种样板初始化?


莫回无
浏览 244回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go