在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
看起来二者没有什么区别,都在堆上分配内存,但是它们的行为不同,适用于不同的类型。
换言之,new 函数分配内存,make 函数初始化;下图给出了区别: 上两个图: 上图中: var p *[]int = new([]int) // *p == nil; with len and cap 0
p := new([]int)
在下图中, 以上两种方式实用性都不高。下面的方法: var v []int = make([]int, 10, 50)
或者 v := make([]int, 10, 50)
这样分配一个有 50 个 int 值的数组,并且创建了一个长度为 10,容量为 50 的 切片 v,该 切片 指向数组的前 10 个元素。
|
请发表评论