Golang中使用new和make

一、何时使用make和new?

二、make和new的区别


1.new这个内置函数用来分配内存。 第一个参数是类型,而不是值,返回值是指向该类型的新分配的零值(默认值)的指针。例如:


此时指针的内容为nil,不能使用,除非再次指向新的引用,所以意义不大,初始化切片时需要使用make。

2.make这个内置函数负责分配和初始化slice,map或chan类型的变量。 像new一样,第一个参数是类型,而不是值。 与new不同,make的返回类型与其参数的类型相同,而不是指向它的指针。 例如:

  • slice(切片):大小指定长度。 切片的容量等于其长度。 可以提供第二个整数参数来指定不同的容量。 它必须不小于长度。 例如,make([] int,0,10)分配一个大小为10的基础数组,并返回一个长度为0且容量为10的切片,该切片由该基础数组支持(即切片的底层由数组维护)。
  • map(映射):为空映射分配足够的空间来容纳指定数量的元素。 该大小可以省略,在这种情况下,分配的起始大小较小。
  • channel(通道):使用指定的缓冲区容量初始化通道的缓冲区。 如果为零或忽略大小,则通道不缓冲。

posted on   HHHuskie  阅读(132)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示