Go make和new的区别



//切片申请内存
s1 := make([]int, 5, 10) 
//map申请内存
m1 = make(map[string]int, 10)
//指针申请内存
var a = new(int) //a为0x342112910


make
make也是用于内存分配的,区别于new,它只用于slice、map、chan的内存创建
而且它返回的类型就是这三个类型本身,而不是他们的指针类型
因为这三种类型就是引用类型,所以就没有必要返回他们的指针了

make和new的区别

  • 1.make和new都是用来申请内存的
  • 2.new很少用,一般用来给基本数据类型申请内存,string、int等,返回的是对应类型的指针*string、*int
  • 3.make用于给slice、map、chan申请内存,make函数的返回的是这三个类型本身
原文地址:https://www.cnblogs.com/staff/p/13220861.html