Go的new和make分配内存的区别
1.new(T)创建一个没有任何数据的类型为T的实例,并返回该实例的指针;
2.make(T, args)只能创建 slice、map和channel,并且返回一个有初始值args(非零)的T类型的实例,非指针。
如
var p *[]int = new([]int) // 分配slice结构内存 : *p = nilvar v []int = make([]int, 100) // 分配一个有 100 个整数的slice
发布时间: 2013-12-28 22:19:33 作者: rapoo
Go的new和make分配内存的区别
1.new(T)创建一个没有任何数据的类型为T的实例,并返回该实例的指针;
2.make(T, args)只能创建 slice、map和channel,并且返回一个有初始值args(非零)的T类型的实例,非指针。
如
var p *[]int = new([]int) // 分配slice结构内存 : *p = nilvar v []int = make([]int, 100) // 分配一个有 100 个整数的slice