插件窝 干货文章 Go语言字符串格式化完全指南 - 详解fmt包用法

Go语言字符串格式化完全指南 - 详解fmt包用法

Go语言字符串格式化完全指南

在Go语言中,字符串格式化主要通过标准库中的fmt包来实现。本文将详细介绍Go中常用的字符串格式化方法,帮助开发者掌握高效处理字符串的技巧。

1. fmt包基础用法

fmt包提供了多种格式化字符串的函数:

// 标准输出
fmt.Printf("Hello, %s!\n", "World") 

// 返回格式化字符串
str := fmt.Sprintf("The answer is %d", 42)

// 写入到io.Writer
fmt.Fprintf(os.Stdout, "Value: %v\n", someValue)

2. 常用格式化动词

  • %v - 默认格式的值
  • %+v - 打印结构体时包含字段名
  • %#v - Go语法表示
  • %T - 值的类型
  • %d - 十进制整数
  • %f - 浮点数
  • %s - 字符串
  • %p - 指针地址

3. 高级格式化技巧

3.1 宽度和精度控制

fmt.Printf("%10s\n", "hello")  // 右对齐
fmt.Printf("%-10s\n", "hello") // 左对齐
fmt.Printf("%.2f\n", 3.14159)  // 保留2位小数

3.2 自定义类型格式化

通过实现fmt.Stringer接口可以自定义类型的输出格式:

type Point struct { X, Y int }

func (p Point) String() string {
  return fmt.Sprintf("(%d,%d)", p.X, p.Y)
}

4. 性能优化建议

  • 对于简单字符串拼接,使用+运算符或strings.Builder性能更好
  • 大量格式化操作时,考虑复用bytes.Buffer
  • 避免在循环中使用Sprintf

通过掌握这些字符串格式化技巧,可以显著提高Go程序的开发效率和运行性能。