标签:不同 div class 函数 类型 两种 适用于 初始 内存地址
看起来二者没有什么区别,都在堆上分配内存,但是它们的行为不同,适用于不同的类型。
&T{}
。换言之,new 函数分配内存,make 函数初始化;下图给出了区别:
上两个图:
上图中:
var p *[]int = new([]int) // *p == nil; with len and cap 0
p := new([]int)
在下图中, p := make([]int, 0)
,切片 已经被初始化,但是指向一个空的数组。
以上两种方式实用性都不高。下面的方法:
var v []int = make([]int, 10, 50)
或者
v := make([]int, 10, 50)
这样分配一个有 50 个 int 值的数组,并且创建了一个长度为 10,容量为 50 的 切片 v,该 切片 指向数组的前 10 个元素。
标签:不同 div class 函数 类型 两种 适用于 初始 内存地址
原文地址:https://www.cnblogs.com/setevn/p/11082699.html