美文网首页
Go语言中new与make的区别

Go语言中new与make的区别

作者: 疾风2018 | 来源:发表于2021-11-22 13:57 被阅读0次

Go语言中的new和make很容易混淆。 列个表格来阐述两者之间的不同和适用场景。

new make
返回值 内存地址(指针) 对象本身 (但是slice, map, chan本身是一个包含一个指向实际数据的指针的轻量级的对象)
初始化 对分配的内存做零值初始化,即内存里全部赋值成零。 会根据<length>, <capacity>等参数分配需要的空间,使得slice, map, chan的内部指针不为nil
适用场景 一般类型 等价于 &T{} 创建slice,map,chan (切片、映射、通道)
代码模板 new([]int] make([]T, [<length>], [<capacity>]) make(map[T1]T2, [<capacity>]) make(chan T)
示例代码 make([]int) make([]int, 10, 100) make([]int, 10) make(map[string]string) make(map[string]string, 10) make(chan int)

make用的比较多,new一般不用,因为可以被 &T{} 形式替代,而且&T{} 还可以对初始化成员域的值

相关文章

  • Golang中make与new有何区别?

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

  • Go语言中new和make的区别

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

  • Go语言中new与make的区别

    Go语言中的new和make很容易混淆。 列个表格来阐述两者之间的不同和适用场景。 newmake返回值内存地址(...

  • 2018-12-02

    go new和make区别 new用来分配内存,但与其他语言中的同名函数不同,它不会初始化内存,只会讲内存置零;也...

  • go 语言中 new和make的区别

    new(T) :为每个新的类型T分配一片内存,初始化为 0 并且返回类型为*T的内存地址:这种方法 返回一个指向类...

  • Go语言中new和make的区别

    Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。在我们定义生成变量的时候,可能会觉得有点迷惑...

  • go语言中的new与make

    参考链接: https://www.yangyanxing.com/article/new_make_in_go....

  • Go学习总结笔记(一)

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

  • go语言视频讲解机会

    本文是的go语言系列视频的目录 go语言中的make和new(https://www.bilibili.com/v...

  • Go - 常见问题

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

网友评论

      本文标题:Go语言中new与make的区别

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