Go语言中new与make的区别
1、new可以是任意类型,返回的是指针:*T,只分配内存,不初始化内存,只是将其置零
2、make只能用于map,slice,chan,返回一个初始化的(而不是置零),类型为T的值创新互联长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为康保企业提供专业的成都做网站、成都网站制作、成都外贸网站建设,康保网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
举例:
var map1 = new(map[string]string)
(*map1)["china"] = "中国" // 此处会报错:panic: assignment to entry in nil map。
// 因为map零值为nil,不能向为nil的map中增加数据
var map2 = make(map[string]string)
map2["china"] = "中国" // 因为make返回一个已经初始化的map,可以直接向其中增加数据
网站栏目:Go语言中new与make的区别
网页路径:http://cdiso.cn/article/pcchss.html