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数据

相关文章
相关标签/搜索