new用于为任意类型分配零值内存并返回* T,make专为slice/map/channel初始化并返回T本身;指针是存地址的变量,需用&取址才能有效使用。
在 Go 语言中,理解指针和内存分配的关键不在于死记语法,而在于搞清 new 和 make 分别解决什么问题、作用于哪些类型、返回什么——它们不是可互换的“创建变量”工具,而是面向不同场景的内存初始化机制。
Go 中的指针就是存储另一个变量内存地址的变量,它本身也占内存(通常是 8 字节)。声明 var p *int 只是定义了一个未初始化的指针(值为 nil),此时它不指向任何有效内存。要让它真正可用,必须让它指向一个已分配的 int 值:
x := 42 → 在栈上分配一个 int,值为 42p := &x → &x 取出 x 的地址,赋给 p;p 现在持有该地址*p = 100 → 解引用,把 100 写入 p 所指的那块内存(也就是修改了 x)注意:& 操作符要求操作数必须是“可寻址的”(比如变量、结构体字段、切片元素),不能对字面量或函数调用结果取地址(如 &42 或 &fmt.Sprintf(...) 是非法的)。
new 是一个内置函数,功能非常单一:申请一块足够存放类型 T 的内存,将这块内存按 T 的零值清零(比如 int→0,string→"",*int→nil,struct→各字段均为零值),然后返回指向它的指针 *T。
示例:
p := new(int) // 分配一个 int,值为 0,p 类型是 *int,等价于 var v int; p := &vmake 是专为三种引用类型设计的内置函数,它不只是分配内存,还要完成类型特定的初始化工作,并返回一个**已经就绪可用的值**(不是指针):
make([]T, len) → 分配底层数组,创建 slice header(包含指针、长度、容量),返回 []T
make(map[K]V) → 初始化哈希表结构,返回 map[K]V
make(chan T, cap) → 创建带缓冲或无缓冲 channel,返回 chan T
关键点:
[]int),不是指针;你不需要也不应该对 make 的结果再取地址来“获得指针”new 更多的事:比如 make(map[string]int) 不仅分配内存,还构建了哈希桶、设置了负载因子等运行时结构对比记忆:
s := make([]int, 5) // ✅ 正确:创建长度为 5 的切片,元素全为 0一句话判断:
new(T)
make(T, ...)
&x,不用 new 也不用 makep := &MyStruct{Field: "hello"},而不是 new + 逐个赋值常见误区:以为 make 返回指针(它不返回)、以为 new 能初始化 map(它不能)、以为 make([]T, 0) 和 new([]T) 效果类似(前者是空切片,后者是 nil 切片,行为不同)。
# go
# golang
# 字节
# 工具
# 栈
# 编译错误
# String
# 结构体
# int
# 指针
# 引用类型
# Struct
# var
# 切片
# len
# cap
# nil
# map
# channel
# 对象
# 的是
# 它不
# 值为
# 不支持
# 专为
# 是一个
# 清零
# 也不
# 你要
# 已有
相关文章:
css网站制作参考文献有哪些,易聊怎么注册?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
如何在阿里云高效完成企业建站全流程?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
建站主机是否属于云主机类型?
宿州网站制作公司兴策,安徽省低保查询网站?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何通过cPanel快速搭建网站?
如何确认建站备案号应放置的具体位置?
如何在局域网内绑定自建网站域名?
制作电商网页,电商供应链怎么做?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
零基础网站服务器架设实战:轻量应用与域名解析配置指南
如何配置FTP站点权限与安全设置?
如何制作网站标识牌,动态网站如何制作(教程)?
如何在云主机上快速搭建多站点网站?
小型网站建站如何选择虚拟主机?
代刷网站制作软件,别人代刷火车票靠谱吗?
如何快速重置建站主机并恢复默认配置?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
红河网站制作公司,红河事业单位身份证如何上传?
大连网站设计制作招聘信息,大连投诉网站有哪些?
建站主机服务器选购指南:轻量应用与VPS配置解析
如何在云主机快速搭建网站站点?
如何在宝塔面板创建新站点?
微信小程序 input输入框控件详解及实例(多种示例)
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
简单实现Android验证码
海南网站制作公司有哪些,海口网是哪家的?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
网站制作需要会哪些技术,建立一个网站要花费多少?
招贴海报怎么做,什么是海报招贴?
网站代码制作软件有哪些,如何生成自己网站的代码?
平台云上自主建站:模板化设计与智能工具打造高效网站
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何快速辨别茅台真假?关键步骤解析
香港服务器如何优化才能显著提升网站加载速度?
在线制作视频的网站有哪些,电脑如何制作视频短片?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
建站之星与建站宝盒如何选择最佳方案?
高端网站建设与定制开发一站式解决方案 中企动力
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
如何解决VPS建站LNMP环境配置常见问题?
建站主机解析:虚拟主机配置与服务器选择指南
*请认真填写需求信息,我们会在24小时内与您取得联系。