当前位置: 首页 > 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 可以帮助你更清晰地看到字符串在内存中的实际表示,这在处理包含特殊字符的字符串或进行调试时非常有用。


http://www.mrgr.cn/news/22135.html

相关文章:

  • 创建表时添加约束
  • Mac在Python项目中通过opencv模版匹配定位不到图片
  • Oracle rman 没有0级时1级备份和0级大小一样,可以用来做恢复 resetlogs后也可以
  • MySQL record 03 part
  • Elasticsearch Mapping 详解
  • C++11 智能指针
  • ROS 发行版 jazzy 加载urdf 渲染到 RVIZ2
  • 价格适中超微小间距P1.8全彩LED显示屏广泛应用于COB会议一体机
  • 代理IP池功能组件
  • 【redis】redis的特性和主要应用场景
  • Linux编译运行cpp源文件
  • c/c++面试100道
  • 心觉:潜意识是一个免费的“超级工作狂”,你居然不会用
  • IP包头的总长度字段和UDP包头的长度字段之间的关系
  • 数据结构(邓俊辉)学习笔记】排序 6——希尔排序:框架 + 实例
  • 738. 单调递增的数字
  • vue组件间通信
  • 基于SpringBoot框架和Flask的图片差异检测与展示系统
  • js事件冒泡和事件委托
  • C++异常