golang中占位符

在 Go 语言中,fmt 包提供了强大的格式化字符串和数值的功能。占位符(也称为转换说明符)允许你在输出字符串中预留位置,然后用变量或其他表达式的值来填充。以下是一些常见的占位符及其说明:

标准占位符

  • %v:默认格式化值。如果不确定类型,可以使用此占位符。
  • %#v:Go 语法表示的值,对于结构体会包含字段名。
  • %T:打印变量的类型。
  • %%:输出一个百分号(%)。

数字类型占位符

  • %d:十进制整数。
  • %b:二进制整数。
  • %c:单个字符(由整数或 rune 类型转换而来)。
  • %o:八进制整数。
  • %x%X:十六进制整数,分别使用小写字母 a-f 或大写字母 A-F
  • %e%E:科学记数法表示浮点数,分别使用小写 e 或大写 E
  • %f:标准浮点数格式。
  • %g%G:使用 %e%f 中较短的一种格式表示浮点数,去掉不必要的小数点后缀。
  • %t:布尔值,输出 truefalse

字符串和字节切片占位符

  • %s:输出字符串,适用于 string 类型或 []byte 类型。
  • %q:输出由双引号包围的字符串,其中特殊字符会被转义,适合用于源代码中的字符串字面量。

其他占位符

  • %p:十六进制表示指针值,常用于打印内存地址。
  • %U%#U:用于 Unicode 代码点的格式化,分别输出 U+hhhh0xhhhh 形式。

控制符

除了上述占位符,还可以使用以下控制符来进一步定制输出格式:

  • 宽度:通过在占位符前加上数字来指定最小宽度,例如 %5d
  • 精度:对于浮点数和字符串,可以在宽度后加上一个点和数字来指定精度或最大长度,例如 %.2f%10.5s
  • 对齐方式:通过在宽度前加 - 来左对齐,不加则默认右对齐。

例如,%-10s 会使字符串左对齐并至少占据 10 个字符空间,不足的部分用空格填充。