新闻中心
如何使用new创建Go指针变量_Go new指针创建方式说明
new是Go中用于在堆上分配指定类型零值内存并返回其指针的内置函数,仅执行分配、置零、返回指针三步,不调用构造函数;适用于需零值指针且类型复杂、泛型或反射等场景。

new 是 Go 语言内置函数,用于在堆上分配指定类型的零值内存,并返回指向该内存的指针。它不调用构造函数(Go 没有构造函数),也不执行初始化逻辑,只做“分配 + 置零 + 返回指针”三件事。
new 的基本语法和行为
语法:new(T),其中 T 是任意类型(不能是接口、未定义类型或抽象类型如 func 或 map)。
返回值:类型为 *T 的指针,指向一个刚分配的、值为 T 类型零值的内存块。
-
new(int)
→ 返回 *int,指向值为 0 的 int - new(string) → 返回 *string,指向值为 "" 的 string
- new([]int) → 返回 *[]int,指向值为 nil 的切片
- new(struct{a int}) → 返回指向字段 a = 0 的 struct 实例的指针
new 和 & 取地址的区别
& 作用于一个已存在的变量,取其地址;new 是直接分配新内存并返回指针,无需先声明变量。
- p := &x:x 必须已定义(比如 x := 42),p 是 x 的地址
- p := new(int):一步到位,等价于先声明 var tmp int 再取地址 &tmp,但 tmp 不可访问
什么时候该用 new?
实际开发中,new 使用频率远低于 &T{} 或字面量取地址。它主要适合以下场景:
- 需要一个指向零值的指针,且类型名较长或嵌套较深,写 &T{} 显得冗余(例如 new(map[string][]byte))
- 泛型或反射场景中,类型 T 在编译期未知,只能靠 new(T) 动态分配
- 某些标准库内部实现(如 sync.Pool 的 New 字段回调)会约定使用 new 初始化零值
⚠️ 注意:new([]int) 得到的是 *[]int(指向 nil 切片),不是可直接 append 的切片指针;若需可操作的 slice,应写 &[]int{}[0:0] 或更推荐用 make([]int, 0) 配合取地址。
对比 make 和 new
make 仅用于 slice、map、chan 三种引用类型,返回的是值(不是指针),且完成初始化(如分配底层数组、哈希表结构等);new 适用于任意类型,返回指针,只做零值分配。
- new([]int) → *[]int,值为 nil
- make([]int, 5) → []int,长度 5,元素全为 0
- &[]int{1,2,3} → *[]int,指向含三个元素的 slice(更常用、更直观)
基本上就这些。new 是个简单但容易被高估的函数——多数时候,用字面量加 & 更清晰,只有明确需要“零值指针”且无初始化需求时才选它。
以上就是如何使用new创建Go指针变量_Go new指针创建方式说明的详细内容,更多请关注其它相关文章!
# 如何在
# 网站推广软件怎么选择
# 渝中网站建设推广
# 廉江seo优化关键词
# 网站优化查询工具在哪里
# 营销推广策划流程步骤
# 肇庆网站快速排名优化
# 黄石专业seo基础优化
# 江门网站建设及优化
# 南京seo公司目标客户
# 抖店营销推广中的直播卖货
# 什么时候
# go
# 也不
# 是个
# 只做
# 布尔
# 适用于
# 如何使用
# 的是
# 值为
# 标准库
# 区别
# app
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
CSS布局中意外空白:解决padding-top导致的顶部间距问题
腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址
在React函数组件中利用原生HTML5进行邮箱地址验证
服务端验证_j*ascript输入检查
在Qt QML中通过Python字典动态更新TextEdit内容的教程
QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口
企业名称高精度匹配:N-gram方法在结构相似性分析中的应用
CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题
动漫花园资源网使用步骤_动漫花园资源网下载流程
J*aScript中安全有效地处理localStorage字符串数据
Centos/Linux 系统下安装 composer 的完整步骤
解决macOS Tkinter应用双击启动崩溃:PyInstaller打包指南
高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】
Linux如何排查内存不足OOME问题_LinuxOOM分析教程
高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法
快手极速版在线观看 官方网页版登录地址
J*aScript中管理异步API调用:确保操作顺序与数据一致性
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置
响应式图片在网页设计中的正确实现方法
DLsite中文平台入口 DLsite官网内容在线查看
如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension
拼多多赚钱渠道_拼多多收益来源
J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案
汽水音乐在线解析 汽水音乐在线解析入口
极速漫画官方主页网址 极速漫画漫画在线浏览官网链接
Composer如何解决json扩展缺失的错误
魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】
Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南
php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】
德邦快递查询平台 德邦快递物流信息查询入口
蛙漫漫画免费阅读入口_蛙漫官方正版无广告纯净版
J*aScript中正确使用querySelectorAll与复杂CSS选择器
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台
J*aScript数据结构转换:将对象数组按类别分组
随机参数递归函数的基准调用次数与时间复杂度探究
怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】
React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性
一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】
抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明
优化LangChain文档加载与ChromaDB集成:解决多文档处理与分块问题
三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升
NetBeans Ant项目:自动化将资源文件复制到dist目录的教程
Go语言中对Map值调用带指针接收者方法:原理与最佳实践
抖音网页版怎么|直播|_抖音网页版开播操作指南
fishbowl官网免费版 fishbowl养鱼网站入口
今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程
MAC如何安全彻底地删除文件_MAC使用终端命令确保文件无法被恢复
蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】


2025-12-15
浏览次数:次
返回列表
→ 返回 *int,指向值为 0 的 int