我是新手,请查看此代码部分
a := make(map[string]string, 10)
a["name"] = "Blob"
// or
b := map[string]string{}
b["name"] = "Blob"
问题:
" make"在堆上分配内存?
" make"函数只为初始化操作添加一步?喜欢用C语言组合malloc和memset吗?
答案 0 :(得分:4)
区别在于make(map[string]string, 10)
为地图提供了容量提示,而复合文字map[string]string{}
则没有。
在两种情况下都会在堆上分配映射。
make
函数和复合文字一样分配和初始化对象。