make与new函数的共同点都是用来做内存分配的
func new(Type) *Type
new函数接收的参数是一个类型,返回的是指向该类型内存地址的指针
一般来说var a *int 声明了指针变量是没有初始化的,它没有对应的内存,需要new分配内存给他才能进行操作,如a=new(int)后才能对a操作
func make(t Type,size ...IntergerType) Type
make函数只用于slice,map,chan分配内存,返回的类型也是它们类型本身,不是指针,因为它们自己都是引用类型,没有必要再返回指针引用了。
切片使用make:make(T[],len,cap)
map使用make:make(map[T]T,cap) 初始化时最好估算好cap,避免程序运行期间再动态扩容,影响性能
new是用来对类型进行分配内存的,返回的是对应类型指针,默认类型0值,用的比较少;make是用来对引用类型分配内存的,用的比较多