Go语言 fmt格式“占位符”

小杰的快乐时光 · · 1162 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。


本篇文章转载自 http://www.cnblogs.com/qing123/articles/4353353.html?hmsr=studygolang.com&utm_medium=studygolang.com&utm_source=studygolang.com

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。

# 定义示例类型和变量
type Human struct {
    Name string
}
var people = Human{Name:"zhangsan"}

普通占位符

占位符                  说明                      举例                             输出
%v              打印一个内置值的值。             Printf("%v", people)          {zhangsan}
%+v             打印结构体时,会添加字段名       Printf("%+v", people)         {Name:zhangsan}
%#v             相应值的Go语法表示               Printf("#v", people)        main.Human{Name:"zhangsan"}
%T              打印内置的或者自定义的类型        Printf("%T", people)         main.Human
%%              字面上的百分号,并非值的占位符    Printf("%%")                     %

布尔占位符

占位符       说明                举例                         输出
%t          true 或 false     Printf("%t", true)             true

整数占位符

占位符             说明                                           举例                     输出
%b                二进制表示                                    Printf("%b", 5)            101
%c                相应Unicode码点所表示的字符                    Printf("%c", 0x4E2D)       中
%d               十进制表示                                     Printf("%d", 0x12)         18
%o               八进制表示                                     Printf("%d", 10)           12
%q               单引号围绕的字符字面值,由Go语法安全地转义       Printf("%q", 0x4E2D)      '中'
%x               十六进制表示,字母形式为小写 a-f                Printf("%x", 13)           d
%X               十六进制表示,字母形式为大写 A-F                Printf("%x", 13)           D
%U              Unicode格式:U+1234,等同于 "U+%04X"            Printf("%U", 0x4E2D)       U+4E2D

字符串与字节切片

占位符     说明                                  举例                               输出
%s      输出字符串表示(string类型或[]byte)     Printf("%s", []byte("Go语言"))      Go语言
%q      双引号围绕的字符串,由Go语法安全地转义   Printf("%q", "Go语言")             "Go语言"
%x      十六进制,小写字母,每字节两个字符       Printf("%x", "golang")             676f6c616e67
%X      十六进制,大写字母,每字节两个字符       Printf("%X", "golang")             676F6C616E67

浮点数和复数的组成部分(实部和虚部)

占位符     说明                                                           举例                  输出
%b      无小数部分的,指数为二的幂的科学计数法,
        与 strconv.FormatFloat 的 'b' 转换格式一致。例如 -123456p-78
%e      科学计数法,例如 -1234.456e+78                                 Printf("%e", 10.2)     1.020000e+01
%E      科学计数法,例如 -1234.456E+78                                 Printf("%e", 10.2)     1.020000E+01
%f      有小数点而无指数,例如 123.456                                  Printf("%f", 10.2)     10.200000
%g      根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出            Printf("%g", 10.20)    10.2
%G      根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出            Printf("%G", 10.20+2i) (10.2+2i)

指针

占位符         说明                      举例                             输出
%p      十六进制表示,前缀 0x          Printf("%p", &people)             0x4f57f0

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:小杰的快乐时光

查看原文:Go语言 fmt格式“占位符”

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1162 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传