Go:new,make,struct{}
new,make,struct{}
| 函数 | 适用范围 | 返回值 | 填充值 |
|---|---|---|---|
| make() | 仅限创建类型(slice map channel) | 引用,make 返回复杂的结构为 slice 时:它是一个包含 3 个域的结构体:指向 slice 中第一个元素的指针,slice 的长度,以及 slice 的容量。 | 非零值,make(T, args)返回一个初始化的(而不是置零),类型为 T 的值(而不是*T)。之所以有所不同,是因为这三个类型的背后引用了使用前必须初始化的数据结构 |
| new() | 所有类型 | 指针,new 返回一个指向已清零内存的指针,而 make 返回一个复杂的结构。 | 零值,new(T)会为 T 类型的新项目,但 new 它并不初始化内存,只是将其置零 |



