Go new 和 make

new(T) 分配了零值填充的T數據結構

類型的內存空間,而且返回其地址,一個*T 類型的值。用Go 的術語說,它返回了一個函數

指針,指向新分配的類型T 的零值。有一點很是重要:指針

new 返回指針。

內存

內建函數make(T, args) 與new(T) 有着不一樣的功能。它只能建立slice,mapmap

和channel,而且返回一個有初始值(非零)的T 類型,而不是*T。本質來說,致使這引用

三個類型有所不一樣的緣由是指向數據結構的引用在使用前必須被初始化。

channel

T{name:"aaa",age:11}
返回 T類型 而不是*T數據

相關文章
相關標籤/搜索