new()与make()的区别

1年前 (2023) 程序员胖胖胖虎阿
108 0 0

new()与make()的区别

//  new()分配内存。第一个参数是一个类型,不是一个值,返回的值是一个指向新分配该类型零值的指针
func new(Type) *Type

// make()分配并初始化一个类型的对象,仅限slice,map,chan。
// 和new() 一样,第一个参数是一个类型,而不是一个值
// 与new()不同,make()的返回类型与它的参数类型相同
// 而不是指向它的指针。结果的规格取决于类型。
// slice:大小可以指定长度。切片的容量等于它的长度。
// 第二个整数参数可以指定不同的容量;它必须不小于长度
// 例如,make([]int, 0, 10) 分配一个大小为10底层数组
// 并返回长度为 0、容量为 10 的切片。
// Map:一个空的map被分配了足够的空间来存放指定数量的元素
// 大小可以省略,在这种情况下分配一个小的起始大小
// Channel: 使用指定的缓冲容量初始化通道的缓冲区(有缓冲)
// 如果为零,或省略大小,则channel为无缓冲
func make(t Type, size ...IntegerType) Type
版权声明:程序员胖胖胖虎阿 发表于 2023年8月30日 下午7:48。
转载请注明:new()与make()的区别 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...