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

golang fmt.Printf中 %q

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

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

  1. 字符串 (string):

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

    • 对于字节切片,行为类似,但输出会更明确地显示出字节的形式。
    package main
    
    import "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 main
    
    import "fmt"
    
    func main() {
        var nilStr *string
        fmt.Printf("%q\n", nilStr) // 输出: ""
    }
    
  4. 转义字符:

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

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


http://www.kler.cn/a/296774.html

相关文章:

  • Windows下使用MinGW编译安装zmq的步骤
  • 滚雪球学MyBatis(05):基本CRUD操作
  • Redis的watch机制详解
  • 编程语言之争:Rust 社区活跃开发者 Ed Page 谈 Rust 与 C++ 的未来
  • C语言---函数指针基础总结万字(4)
  • 基于vue框架的车辆维修管理系统的设计与实现pvno9(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 国内web组态推荐
  • 东南亚电商新蓝海:深度解析东南亚服务器租用的战略价值
  • Oracle OCP认证值得考吗? 需要门槛吗?
  • CSS background-attachment 属性详解
  • ChatGPT 3.5/4.0使用手册:解锁人工智能的无限潜能
  • 电商返利系统的高可用性与灾难恢复策略
  • IntelliJ IDEA - 强大的编程工具
  • 揭秘InnoDB:为何MySQL选择B+树作为索引结构
  • 构建STM32智能平衡车项目:PID控制算法与蓝牙通信技术
  • 2024华为OD统一考试题库清单(持续收录中)以及考点说明(Python/JS/C/C++篇)
  • PYTHON1期
  • Redis分布式
  • 【Linux】进程间通信(IPC)(第十四篇)
  • 鸿蒙轻内核M核源码分析系列十九 Musl LibC