new与make的区别:
new用来分配内存,不初始化内存,只会将内存置0【返回一个指针,该指针指向新分配的,类型为T的零值】
make:只用于slice,map,channel的创建,并返回类型为T(非指针)的已初始化(非0值)的值【这三种类型本质上为引用类型,使用前必须初始化】
共同点:
都在堆上分配内存,但是行为不同,适用于不同的类型
new分配内存
make初始化
new([]int):返回*[]int
make([]int,0):返回[]int
var p *[]int = new([]int) // allocates slice structure; *p == nil; rarely useful
var v []int = make([