首页 > golang 中关于结构体组合的初始化问题

golang 中关于结构体组合的初始化问题

对于Golang的struct组合的初始化存在问题

现在有一个struct是Engine,它组合了sync.RWMutex

type Engine struct {
    sync.RWMutex

    ID     string
    IP     string
    Addr   string
}

在构建的时候,可以不用传入sync.RWMutex的对象

func main() {
    engine := &Engine {
            ID   : "111",
            IP   : "192.168.59.103",
            Addr : "localhost"}
}

为什么在这里不用对于syncRWMutex进行初始化,在Doc里看到如果组合的是Pointer的化,需要初始化。这个为什么呢,能不能有大拿来讲解一下Go的内存管理在组合的情况下到底是怎么样的,如果我不初始化sync.RWMutex,那么在调用它的方法的时候,传入的receiver是什么呢?


在没有指定初始化值时会默认初始化为对应类型的零值,对应到读写锁就是读写均未加锁状态。

【热门文章】
【热门文章】