Go语言内存分配机制
roger9567 · · 2912 次点击 · · 开始浏览前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请注明出处!
Go语言有两种内存分配机制 , 分别是内置函数 new() 和make().
- new()
- 定义: func new(Type) * Type
- 返回值是一个内存块指针
- new() 是一个内置函数, 不同于其他语言中的new操作符, 它只将内存清零, 而不是初始化内存.
- make()
- 定义: func make(Type, size IntegerType) Type
- 在调用make() 函数时, Type必须是引用类型 (Slice , Map 或 Channel), IntegerType指定要创建的对象的个数.
- make() 返回值是一个对象, 而不是new返回的一个内存空间指针.
- make 和 new 对比
var p * []int = new([]int) var v []int = make([]int,10)
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请注明出处!
Go语言有两种内存分配机制 , 分别是内置函数 new() 和make().
- new()
- 定义: func new(Type) * Type
- 返回值是一个内存块指针
- new() 是一个内置函数, 不同于其他语言中的new操作符, 它只将内存清零, 而不是初始化内存.
- make()
- 定义: func make(Type, size IntegerType) Type
- 在调用make() 函数时, Type必须是引用类型 (Slice , Map 或 Channel), IntegerType指定要创建的对象的个数.
- make() 返回值是一个对象, 而不是new返回的一个内存空间指针.
- make 和 new 对比
var p * []int = new([]int) var v []int = make([]int,10)