当前位置: 首页 > news >正文

golang fmt.Printf中 %q

在 Go 语言中,fmt.Printf 函数用于格式化输出,其中 %q 是一个非常有用的格式动词,用于在字符串或字节切片周围加上引号。这对于调试和显示字符串内容时特别有用,因为它会显示出字符串的原始形式,包括转义字符。

以下是 %q 的具体用法和特点:

  1. 字符串 (string):

    • %q 会给字符串值加上双引号。
    • 任何非打印字符或特殊字符将被转义。
    package mainimport "fmt"func main() {str := "Hello, 世界"fmt.Printf("%q\n", str) // 输出: "Hello, 世界"
    }
    
  2. 字节切片 ([]byte):

    • 对于字节切片,行为类似,但输出会更明确地显示出字节的形式。
    package mainimport "fmt"func main() {byteSlice := []byte{72, 101, 108, 108, 111, 44, 32, 228, 184, 150, 231, 149, 140}fmt.Printf("%q\n", byteSlice) // 输出: "Hello, \xe4\xb8\x96\xe7\x95\x8c"
    }
    
  3. 空值处理:

    • 如果传递的是 nil%q 会输出 ""
    package mainimport "fmt"func main() {var nilStr *stringfmt.Printf("%q\n", nilStr) // 输出: ""
    }
    
  4. 转义字符:

    • 特殊字符如 \n, \t 等会在引号内被转义显示。
    package mainimport "fmt"func main() {specialStr := "Line1\nLine2\tTabbed"fmt.Printf("%q\n", specialStr) // 输出: "Line1\nLine2\tTabbed"
    }
    

使用 %q 可以帮助你更清晰地看到字符串在内存中的实际表示,这在处理包含特殊字符的字符串或进行调试时非常有用。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【React】Vite 构建 React
  • Zustand 状态调试以及持久话
  • SpringBoot与Minio的极速之旅:解锁文件切片上传新境界
  • pytorch torch.matmul函数介绍
  • 基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例
  • 【redis】redis的特性和主要应用场景
  • 码上君量化互助社群介绍
  • javascript嵌套循环
  • 使用shell脚本安装mysql8,进行主从备份配置
  • route-forward springboot实现路由转发程序
  • 系统架构师-ERP+集成
  • lwip移植-基于类rtosw5500
  • 实例:如何统计当前主机的连接状态和连接数
  • 实习项目|苍穹外卖|day8
  • 【机器学习】和【人工智能】在物理学领域的应用以及代码案例分析
  • 【刷算法】从上往下打印二叉树
  • 2018一半小结一波
  • 30秒的PHP代码片段(1)数组 - Array
  • 5、React组件事件详解
  • C学习-枚举(九)
  • Facebook AccountKit 接入的坑点
  • JavaScript-Array类型
  • JavaScript新鲜事·第5期
  • JS+CSS实现数字滚动
  • js继承的实现方法
  • linux安装openssl、swoole等扩展的具体步骤
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • sessionStorage和localStorage
  • Vue.js 移动端适配之 vw 解决方案
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 分享几个不错的工具
  • 回顾2016
  • 理清楚Vue的结构
  • 力扣(LeetCode)56
  • 如何胜任知名企业的商业数据分析师?
  • 使用 QuickBI 搭建酷炫可视化分析
  • 以太坊客户端Geth命令参数详解
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • # Maven错误Error executing Maven
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #Ubuntu(修改root信息)
  • ( 10 )MySQL中的外键
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (6)STL算法之转换
  • (6)添加vue-cookie
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)Sql Server 保留几位小数的两种做法
  • .axf 转化 .bin文件 的方法
  • .describe() python_Python-Win32com-Excel