fmt.Printf中的格式化动作('verb')

ace_kylin · 2018-10-03 16:53:53 · 1183 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2018-10-03 16:53:53 的文章,其中的信息可能已经有所发展或是发生改变。

源自C语言但更简单

通用:

%v    值的默认格式表示

%+v    类似%v,但输出结构体时会添加字段名

%#v    值的Go语法表示

%T    值的类型的Go语法表示

%%    百分号

布尔值:

%t    单词true或false

整数:

%b    表示为二进制

%c    该值对应的unicode码值

%d    表示为十进制

%o    表示为八进制

%q    该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示

%x    表示为十六进制,使用a-f

%X    表示为十六进制,使用A-F

%U    表示为Unicode格式:U+1234,等价于"U+%04X"

浮点数与复数的两个组分:

%b    无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat

%e    科学计数法,如-1234.456e+78

%E    科学计数法,如-1234.456E+78

%f    有小数部分但无指数部分,如123.456

%F    等价于%f

%g    根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)

%G    根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)

字符串和[]byte:

%s    直接输出字符串或者[]byte

%q    该值对应的双引号括起来的go语法字符串字面值,必要时会采用安全的转义表示

%x    每个字节用两字符十六进制数表示(使用a-f)

%X    每个字节用两字符十六进制数表示(使用A-F)

指针:

%p    表示为十六进制,并加上前导的0x

宽度通过一个紧跟在百分号后面的十进制数指定,如果未指定宽度,则表示值时除必需之外不作填充。精度通过(可选的)宽度后跟点号后跟的十进制数指定。如果未指定精度,会使用默认精度;如果点号后没有跟数字,表示精度为0。举例如下:

%f:    默认宽度,默认精度

%9f    宽度9,默认精度

%.2f   默认宽度,精度2

%9.2f  宽度9,精度2

%9.f   宽度9,精度0

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

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

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