8.5 make 函数

与 new(T) 相反,内置函数 make(T, args) 仅用于创建切片、Map和Channel。make 函数分配内存,并返回类型 T 的初始化值(而不是 *T)。

对于切片、Map 和Channel,make 初始化内部数据结构并准备好该值的使用。

例如,make([]int,10,100) 分配了一个长度为 100 的 int 数组,然后创建了一个指向数组的前 10 个元素的长度为 10、容量为 100 的切片结构。

相比之下,new([]int) 返回指向新分配的、归零的切片结构的指针,即指向 nil 切片值的指针。

最后更新于