go

make

和new都在堆中分配內存,但是他們卻有很大不同

1.new(T)新建了T類型的item,將內存清零,等待使用,而不是初始化內存,並返回地址*T,應用於數組和struct結構體,相當於&T{},

就是它返回了一個指向新分配的類型爲T的零值的指針

2.make(T)返回了類型T的初始化值,應用於3種內置的引用類型:slice數組切片,map映射,channel,並返回類型T(不是*T)的一個被初始化了的(不是零)實例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章