1. 程式人生 > >go中的make和new的區別

go中的make和new的區別

channel 有一點 區別 都是 chan new ron 術語 初始化

  1. 適用範圍:make 只能創建內建類型(slice map channel), new 則是可以對所有類型進行內存分配
  2. 返回值: new 返回指針, make 返回引用
  3. 填充值: new 填充零值, make 填充非零值

需要註意的是,slice,map,channel都是指針的引用。

make 是 引用類型 初始化的方法。

new(T)分配了零值填充的T類型的內存空間,並且返回其地址,即一個*T類型的值。用Go的術語說,它返回了一個指針,指向新分配的類型T的零值。有一點非常重要:new返回指針。

go中的make和new的區別