Go语言中make和new的区别
Go语言中,new和make都是用来内存(堆上)分配的原语(allocation primitives),但是:make只用于slice、map以及channel的初始化(非零值);new用于类型的内存分配,并且内存置为零。make返回的是引用类型本身;而new返回的是指向类型的指针。简单的说,new只分配内存,make用于slice,map,和channel的初始化。newfunc new(Type) *Type
new(T) 函数是一个分配内存的内置函数,为每个类型分配一片内存,并初始化为零值且返回其内存地址。如果它还不是一个变量,不可以可以直接赋值:var v *int
* ......
<阅读全文>
<阅读全文>