GO语言内存分配机制

作者: guazi1020 | 来源:发表于2019-06-18 15:12 被阅读2次

    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)的一个被初始化了的(不是零)实例。之中差别的出现是由于这三种类型实质上是对在使用前必须进行初始化的数据结构的音译。

    相关文章

      网友评论

        本文标题:GO语言内存分配机制

        本文链接:https://www.haomeiwen.com/subject/pvufqctx.html