全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

如何在Golang中使用指针初始化变量_new和make创建指针示例

new用于分配零值内存并返回指向它的指针,仅支持基本类型、结构体等,不支持slice/map/channel;make仅用于slice/map/channel的初始化,返回值本身而非指针。

在 Go 中,newmake 都用于内存分配,但它们用途不同,且都不能直接“创建指针”——new 返回指针,make 返回值本身(仅用于 slice、map、channel),需额外取地址才能获得指针。

new:分配零值内存并返回指向它的指针

new(T) 为类型 T 分配零值内存,返回 *T。它不调用构造函数(Go 没有构造函数),也不支持 slice/map/channel。

  • ptr := new(int) → 分配一个 int(值为 0),返回 *int
  • ptr := new(string) → 分配一个空字符串 "",返回 *string
  • ptr := new([3]int) → 分配长度为 3 的数组(全 0),返回

make:仅用于引用类型,返回值而非指针

make 只适用于 slicemapchannel,返回的是该类型的值(不是指针),但这些类型底层本身就是引用类型(包含指针字段)。

  • s := make([]int, 5) → 返回 []int(底层数组已分配,长度 5)
  • m := make(map[string]int) → 返回 map[string]int(已初始化,可直接使用)
  • c := make(chan int, 2) → 返回 chan int(带缓冲)

若真需要指向 slice/map/channel 的指针(极少用),需显式取地址:ptr := &s,但这通常没必要,因为它们本身已可共享修改。

如何正确获得指针:结合字面量或 new

更常见、更清晰的方式是用取地址操作符 &

  • i := 42; ptr := &i → 明确、高效
  • s := []int{1,2,3}; ptr := &s → 得到 *[]int(不常用)
  • m := make(map[string]bool); ptr := &m → 得到 *map[string]bool(一般不需要)

注意:make 不能和 & 混写成 &make(...) —— 会编译错误,因为 make 返回的是不可寻址的临时值。

对比总结:什么时候用哪个

  • 要一个指向零值的指针?→ 用 new(T)(如 new(bytes.Buffer)
  • 要初始化 slice/map/channel?→ 必须用 makenew 对它们无效)
  • 已有变量想取指针?→ 用 &v,最直观安全
  • 自定义结构体?→ 推荐字面量 + &u := &User{Name: "Alice"},比 new(User) 更灵活


# go  # golang  # String  # 构造函数  # 字符串  # 结构体  # int  # 指针  # map  # channel  # 的是  # 返回值  # 而非  # 也不  # 不需要  # 什么时候  # 已有  # 适用于  # 自定义  # 但这 


相关文章: 建站之星北京办公室:智能建站系统与小程序生成方案解析  山东云建站价格为何差异显著?  香港服务器WordPress建站指南:SEO优化与高效部署策略  如何通过商城免费建站系统源码自定义网站主题?  如何选择服务器才能高效搭建专属网站?  深圳网站制作平台,深圳市做网站好的公司有哪些?  成都网站制作报价公司,成都工业用气开户费用?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  如何获取免费开源的自助建站系统源码?  如何选择靠谱的建站公司加盟品牌?  如何通过虚拟主机快速完成网站搭建?  如何在建站之星网店版论坛获取技术支持?  建站之家VIP精选网站模板与SEO优化教程整合指南  建站之星安装路径如何正确选择及配置?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  h5在线制作网站电脑版下载,h5网页制作软件?  建站之星如何实现五合一智能建站与营销推广?  建站之星安装步骤有哪些常见问题?  Thinkphp 中 distinct 的用法解析  如何通过wdcp面板快速创建网站?  简单实现Android文件上传  打鱼网站制作软件,波克捕鱼官方号怎么注册?  高防服务器租用首荐平台,企业级优惠套餐快速部署  建站之星如何取消后台验证码生成?  建站之星安装后界面空白如何解决?  如何将凡科建站内容保存为本地文件?  如何快速搭建高效可靠的建站解决方案?  建站主机服务器选型指南与性能优化方案解析  魔方云NAT建站如何实现端口转发?  如何用虚拟主机快速搭建网站?详细步骤解析  如何用搬瓦工VPS快速搭建个人网站?  教学论文网站制作软件有哪些,写论文用什么软件 ?  建站之星客服服务时间及联系方式如何?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  建站之星伪静态规则如何设置?  如何选择高性价比服务器搭建个人网站?  如何用PHP工具快速搭建高效网站?    Python文件管理规范_工程实践说明【指导】  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  个人网站制作流程图片大全,个人网站如何注销?  如何快速打造个性化非模板自助建站?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  Swift中循环语句中的转移语句 break 和 continue  如何使用Golang安装API文档生成工具_快速生成接口文档  常州企业建站如何选择最佳模板?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。

  • 返回顶部
  • 400-708-3566
  • QQ在线
  • 微信二维码