陈明勇一名热爱技术、乐于分享的开发者,同时也是开源爱好者。
92文章
12分类
22标签
19评论
160点赞
98354浏览量
1
0
一文了解 Go fmt 标准库的常用占位符及其简单使用
陈明勇
2024-01-05 17:48:51
阅读 156

扫码关注公众号,手机阅读更方便

Go技术干货

占位符

通过占位符,可以指定格式进行输入或输出,以下为 fmt 标准库里的占位符:

  • 普通占位符
    占位符描述举例结果
    %v默认格式的值fmt.Printf("%v", User{Name: "小明", Age: 18}){小明 18}
    %+v如果打印的是结构体,额外打印字段名fmt.Printf("%+v", User{Name: "小明", Age: 18}){Name:小明 Age:18}
    %#v对应值的 Go 语法表示fmt.Printf("%#v", User{Name: "小明", Age: 18})main.User{Name:"小明", Age:18}
    %T对应值类型的 Go 语法表示fmt.Printf("%T", User{Name: "小明", Age: 18})main.User
    %%非占位符,而是字面上的 %fmt.Printf("%%")%
  • 布尔
    占位符描述举例结果
    %t对应值 true 或 falsefmt.Printf("%t", false)false
  • 整数
    占位符描述举例结果
    %b二进制的形式fmt.Printf("%b", 2)10
    %c对应的Unicode码位表示的字符fmt.Printf("%c", 65)A
    %d十进制的形式fmt.Printf("%d", 10)10
    %5d十进制的形式,长度为5,长度不够用空格来补fmt.Printf("%5d", 123)__123,由于空格显示不出来,用下划线表示空格
    %o八进制的形式fmt.Printf("%o", 10)12
    %O前缀为0o的八进制的形式fmt.Printf("%O", 10)0o12
    %q使用 Go 语法安全转义的单引号字符文字fmt.Printf("%q", 65)'A'
    %x十六进制的形式,字母部分用小写字母 a-f 表示fmt.Printf("%x", 12)c
    %X十六进制的形式,字母部分用大写字母 A-F 表示fmt.Printf("%X", 12)C
    %UUnicode 格式fmt.Printf("%U", 15)U+000F
  • 浮点数
    占位符描述举例结果
    %f打印小数,默认的长度和小数,小数精度为 6 位fmt.Printf("%f", 1.50000000001)1.500000
    %5f长度为 5(整数和小数点以及小数加起来的长度),默认小数精度6位,长度不够则用空格来补fmt.Printf("%10f", 0.1)__0.100000,由于空格显示不出来,用下划线表示空格
    %.3f默认长度,小数精度为 3fmt.Printf("%.3f", 0.1)0.100
    %7.3f长度为 7(整数和小数点以及小数加起来的长度),小树精度为 3fmt.Printf("%7.3f", 0.1)__ 0.100,由于空格显示不出来,用下划线表示空格
  • 字符串和字节切片
    占位符描述举例结果
    %s输出 string 类型或 byte 类型的字符串形式fmt.Printf("%s, %s", "haha", byte("haha"))haha, haha
    %q加上双引号的字符串fmt.Printf("%q", "haha")"haha"
    %x十六进制的形式,字母用小写表示,每个字节两个字符fmt.Printf("%x", "hello")68656c6c6f
    %X十六进制的形式,字母用大写表示,每个字节两个字符fmt.Printf("%X", "hello")68656C6C6F
  • 切片
    占位符描述举例结果
    %p以16进制表示的第0个元素的地址,前缀为0xfmt.Printf("%p", int{1, 2, 3})0xc000010120
  • 指针
    占位符描述举例结果
    %p16进制表示,前缀为0xfmt.Printf("%p", &User{Name: "小明"})0xc000008078
1
评论
个人信息
清空
预览
提交
陈明勇一名热爱技术、乐于分享的开发者,同时也是开源爱好者。
92文章
12分类
22标签
19评论
160点赞
98354浏览量
目录