GO语言内存分配机制

Go具有两种分配内存的机制,分别是使用内置函数new()和make().

1、new函数
new()函数可以给一个值类型的数据分配内存,调用成功后返回一个初始化块指针,new()函数的内存块指针,new()函数原型定义如下:

func new(Type) * Type

在调用new()函数时要注意,参数Type是一个类型而不是具体的数值,函数调用成功后返回该类型的内存指针,同事给类型初始化为“0”值。

2、make函数
make()函数用于给引用类型分配内存空间,比如像Slice,Map,Channel等。make()函数创建的是一个引用类型对象,而不是一个内存空间的指针。make()函数的原型定义如下:

func make(Type, size InterType) Type

make(T,args)函数的目的与new(T)不同。它仅用于创建Slice、Map和Channel,并返回类型T(不是*T)的一个被初始化了的(不是零)实例。之中差别的出现是由于这三种类型实质上是对在使用前必须进行初始化的数据结构的音译。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容