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
相关文章
暂无评论...