new 和 make 的区别

共同点: 给变量分配内存

不同点:

  • 作用变量类型不同, new给对象 new(T), 数组 new([N]T) 和切片 new([]T) 分配内存, make给slice, map和channel分配内存;
  • 返回类型不一样, new返回指向变量的指针, 相当于&T{}, make返回变量本身;
  • new 分配的空间被清零. make 分配空间后, 会进行初始化;

分配的位置,在堆上还是在栈上?

results matching ""

    No results matching ""