Go 语言中格式化动词
当然,我很乐意为你提供 Go 语言中所有的格式化动词的完整列表。Go 语言的格式化动词非常丰富,可以满足各种打印和格式化需求。以下是完整的列表:
 通用:
 %v - 以默认格式打印值
 %+v - 类似 %v,但对结构体会添加字段名
 %#v - 以 Go 语法格式打印值
 %T - 打印值的类型
 %% - 打印百分号本身
 布尔值:
 %t - 打印 true 或 false
 整数:
 %b - 二进制
 %c - 相应 Unicode 码点表示的字符
 %d - 十进制
 %o - 八进制
 %O - 八进制,带前缀 0o
 %q - 单引号围绕的字符字面值,由 Go 语法安全地转义
 %x - 十六进制,小写字母
 %X - 十六进制,大写字母
 %U - Unicode 格式:U+1234,等同于 “U+%04X”
 浮点数与复数:
 %b - 无小数部分的指数表示,科学计数法
 %e - 科学计数法,例如 -1.234456e+78
 %E - 科学计数法,例如 -1.234456E+78
 %f - 有小数点而无指数,例如 123.456
 %F - 等同于 %f
 %g - 根据情况选择 %e 或 %f 以产生更紧凑的输出
 %G - 根据情况选择 %E 或 %F 以产生更紧凑的输出
 字符串和字节切片:
 %s - 输出字符串表示(string类型或[]byte)
 %q - 双引号围绕的字符串,由 Go 语法安全地转义
 %x - 十六进制,小写字母,每字节两个字符
 %X - 十六进制,大写字母,每字节两个字符
 指针:
 %p - 十六进制表示,前缀 0x
 切片:
 %p - 地址的十六进制表示,前缀 0x
 其他标记:
-  - 总是输出数值的正负号
 
-  - 在右侧而非左侧填充空格(左对齐该区域)
 
- 备用格式:为八进制添加前导 0(%#o),为十六进制添加前导 0x(%#x)或 0X(%#X),为 %p(%#p)去掉前导 0x
’ ’ - (空格)为数值中省略的正负号留出空白(% d)
 0 - 填充前导的0而非空格
package mainimport "fmt"func main() {i := 15f := 123.456s := "Hello"c := complex(1, 2)fmt.Printf("整数:%%d = %d, %%x = %x, %%o = %o, %%b = %b\n", i, i, i, i)fmt.Printf("浮点:%%f = %f, %%e = %e, %%g = %g\n", f, f, f)fmt.Printf("字符串:%%s = %s, %%q = %q\n", s, s)fmt.Printf("复数:%%v = %v, %%g = %g\n", c, c)fmt.Printf("指针:%%p = %p\n", &i)fmt.Printf("类型:%%T = %T, %T, %T\n", i, f, s)
}
