美文网首页
Go的内建函数new和make

Go的内建函数new和make

作者: xuanxiao | 来源:发表于2019-10-24 19:54 被阅读0次

new函数

返回T类型的指针
new(T)创建无类型限制
new(T)会向内存申请一块内存空间,并按照T类型进行零值填充,最后返回T类型对应零值在内存空间中的地址。

make函数

返回T类型
make(T, args)只能创建slicemapchannel
slicemapchannel这三种类型在使用之前必须初始化,未初始化的时候都是nil,除了slice外是没法直接使用的(slice通过append()可以添加值,进行正常使用,但是append()函数本质也是重新初始化了一个slice)。以slice为例,slice包含:一直指向数据(内部是一个array)的指针,长度和容量,在未初始化的时候,slice为nil,以上这些都不存在,无法获取。make就是将这些填充了适当的值,进行了初始化

相关文章

  • Go - 常见问题

    make和new new(T) 和 make(T, args) 是Go语⾔内建函数,⽤来分配内存,但适⽤的类型不⽤...

  • new与make

    Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives)。对于初...

  • new与make

    Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives)。对于初...

  • Go的内建函数new和make

    new函数 返回T类型的指针new(T)创建无类型限制new(T)会向内存申请一块内存空间,并按照T类型进行零值填...

  • Go语言中new和make的区别

    转载自Go语言中new和make的区别 Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。在我...

  • Go学习总结笔记(一)

    go version 1.13 基础语法 1. new(T) 和 make(T,args) 的区别? new(T)...

  • 理解 Go make 和 new

    都是用来分配空间,初始化【类型】 new(t): 分配一个空间,放进去t的零值,放回指针 但是var a *int...

  • Golang中make与new有何区别?

    Golang中make与new有何区别? 一、前言 本文主要给大家介绍了Go语言中函数new与make的使用和区别...

  • Go语言的new和make

    在go语言中, 通过var声明变量时, 不指定默认值时, 就是使用他们的零值。 例如int类型的零值是0,stri...

  • Go make 和 new 的区别

    new(T) 返回的是 T 的指针 new(T) 为一个 T 类型新值分配空间并将此空间初始化为 T 的零值,返回...

网友评论

      本文标题:Go的内建函数new和make

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