全网整合营销服务商

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

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

Golang如何格式化字符串_Golang fmt使用技巧与语法说明

Go语言中格式化字符串依赖fmt包,核心函数为fmt.Sprintf、Printf和Fprintf,使用动词如%s、%d控制输出形式;%v用于默认格式,%+v显示结构体字段名,%#v生成Go语法字面量,%d、%x、%X分别输出十进制和十六进制整数,%s输出字符串,%q带引号并转义,%f、%e、%g控制浮点数精度;修饰符如宽度6、精度.2和标志0、+、-可组合成%6.2f、%-10s、%08d等,提升对齐与可读性;推荐用%+v打印结构体以增强调试信息,或实现String()方法自定义输出;禁止将用户输入作为格式字符串,防止panic或信息泄露,应使用固定格式如"User: %s"配合参数传入,确保安全。

Go 语言中格式化字符串主要靠 fmt 包,核心是 fmt.Sprintffmt.Printffmt.Fprintf 这三个函数,语法简洁统一,但细节决定是否写得清晰又安全。

基础动词(verbs)怎么选

动词控制值的输出形式,写在 % 后面,比如 %s%d。常用且实用的有:

  • %v:默认格式,适合调试,自动适配类型(如结构体打印字段名+值)
  • %+v:结构体时显示字段名,比 %v 更清晰
  • %#v:输出 Go 语法风格的字面量(比如 struct{A int}{A:1}),方便复制回代码
  • %d:十进制整数;%x 十六进制小写;%X 大写
  • %s:字符串;%q 带双引号并转义("hello\n");%x 字符串按字节十六进制输出
  • %f%e%g:浮点数不同表示法,%.2f 可控制小数位数

宽度、精度和标志这些修饰符怎么用

它们紧贴动词前,构成完整格式符,例如 %6.2f%-10s%08d

  • 数字 6 是最小宽度:不足则补空格(左对齐加 -,右对齐默认)
  • .2 是精度:对浮点数是小数位数,对字符串是最大输出长度(%.3s 截取前 3 字符)
  • 0 标志用于数字,表示用 0 填充而非空格(%04d 输出 0042
  • + 强制显示正负号(%+d 输出 +42
  • (空格)标志:正数前加空格,负数前加 -,对齐时有用

结构化格式推荐用结构体字段名 + %+vfmt.Stringer

直接打印结构体别只用 %v,容易漏字段或难读:

  • %+v 看字段名和值,适合日志或调试:fmt.Printf("%+v", user)
  • 若要自定义输出(比如隐藏密码字段、美化时间),让类型实现 String() string 方法,fmt 会自动调用它
  • 避免手动拼接字符串(如 "name:" + u.Name + ", age:" + strconv.Itoa(u.Age)),既啰嗦又易错

安全提示:别用用户输入当格式字符串

fmt.Printf(userInput, args...) 是严重安全隐患——如果 userInput%s%d,可能触发 panic 或信息泄露:

  • 永远用固定格式字符串:fmt.Printf("User: %s, ID: %d", name, id)
  • 需要动态拼格式?先用 fmt.Sprintf 构造好再传给 fmt.Print*,不把变量放第一个参数位置
  • 日志库(如 logzap)也同理,别把用户数据当格式模板

基本上就这些。fmt 不复杂但容易忽略修饰符细节,用熟几个常用组合(比如 %+v%02d%q)就能覆盖大多数场景。


# go  # golang  # go语言  # 字节  # print  # String  # printf  # 字符串  # 结构体  # int  # Struct 


相关文章: 临沂网站制作企业,临沂第三中学官方网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何选择高性价比服务器搭建个人网站?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  香港服务器选型指南:免备案配置与高效建站方案解析  如何在阿里云ECS服务器部署织梦CMS网站?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  网站制作免费,什么网站能看正片电影?  如何通过商城免费建站系统源码自定义网站主题?  ,在苏州找工作,上哪个网站比较好?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  长沙企业网站制作哪家好,长沙水业集团官方网站?  宝塔面板创建网站无法访问?如何快速排查修复?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何快速搭建自助建站会员专属系统?  建站之星后台密码遗忘或太弱?如何重置与强化?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  网站专业制作公司有哪些,做一个公司网站要多少钱?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  b2c电商网站制作流程,b2c水平综合的电商平台?  微课制作网站有哪些,微课网怎么进?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何选择服务器才能高效搭建专属网站?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何通过二级域名建站提升品牌影响力?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  大连网站设计制作招聘信息,大连投诉网站有哪些?  如何快速搭建安全的FTP站点?  如何在宝塔面板中修改默认建站目录?  香港网站服务器数量如何影响SEO优化效果?  如何快速搭建个人网站并优化SEO?  教学网站制作软件,学习*后期制作的网站有哪些?  大连 网站制作,大连天途有线官网?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何高效生成建站之星成品网站源码?  详解jQuery中基本的动画方法  宁波自助建站系统如何快速打造专业企业网站?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何通过FTP空间快速搭建安全高效网站?  文字头像制作网站推荐软件,醒图能自动配文字吗?  如何快速查询域名建站关键信息?  建站10G流量真的够用吗?如何应对访问高峰?  建站之星展会模板:智能建站与自助搭建高效解决方案 

您的项目需求

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