go 中 new() 和 make() 的區別

看起來二者沒有什麼區別,都在堆上分配內存,但是它們的行爲不同,適用於不同的類型。 new(T) 爲每個新的類型T分配一片內存,初始化爲 0 並且返回類型爲*T的內存地址:這種方法 返回一個指向類型爲 T,值爲 0 的地址的指針,它適用於值類型如數組和結構體;它相當於 &T{}。 make(T) 返回一個類型爲 T 的初始值,它只適用於3種內建的引用類型:切片、map 和 channel( 換言之,
相關文章
相關標籤/搜索