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