Go 格式化动词

Printf() 函数可以使用多种格式化动词对输出进行格式化。下面是可以与所有数据类型一起使用的一些通用格式化动词:

通用格式化动词: 以下动词适用于所有数据类型:

动词描述
%v以默认格式打印值
%#v以 Go 语法格式打印值
%T打印值的类型
%%打印百分号

示例:

1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var i = 15.5 9 var txt = "Hello World!" 10 11 fmt.Printf("%v\n", i) 12 fmt.Printf("%#v\n", i) 13 fmt.Printf("%v%%\n", i) 14 fmt.Printf("%T\n", i) 15 16 fmt.Printf("%v\n", txt) 17 fmt.Printf("%#v\n", txt) 18 fmt.Printf("%T\n", txt) 19}

结果:

115.5 215.5 315.5% 4float64 5Hello World! 6"Hello World!" 7string

整数格式化动词

以下动词适用于整数数据类型:

动词描述
%b二进制
%d十进制
%+d带符号的十进制
%o八进制
%O八进制(带 0o 前缀)
%x十六进制(小写)
%X十六进制(大写)
%#x带 0x 前缀的十六进制
%4d使用空格填充(宽度 4,右对齐)
%-4d使用空格填充(宽度 4,左对齐)
%04d使用零填充(宽度 4)

示例:

1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var i = 15 9 10 fmt.Printf("%b\n", i) 11 fmt.Printf("%d\n", i) 12 fmt.Printf("%+d\n", i) 13 fmt.Printf("%o\n", i) 14 fmt.Printf("%O\n", i) 15 fmt.Printf("%x\n", i) 16 fmt.Printf("%X\n", i) 17 fmt.Printf("%#x\n", i) 18 fmt.Printf("%4d\n", i) 19 fmt.Printf("%-4d\n", i) 20 fmt.Printf("%04d\n", i) 21}

结果:

11111 215 3+15 417 50o17 6f 7F 80xf 9 15 1015 110015

字符串格式化动词

以下动词适用于字符串数据类型:

动词描述
%s普通字符串打印
%q双引号包裹的字符串打印
%8s普通字符串打印(宽度 8,右对齐)
%-8s普通字符串打印(宽度 8,左对齐)
%x字节值的十六进制转储
% x带空格的十六进制转储

示例:

1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var txt = "Hello" 9 10 fmt.Printf("%s\n", txt) 11 fmt.Printf("%q\n", txt) 12 fmt.Printf("%8s\n", txt) 13 fmt.Printf("%-8s\n", txt) 14 fmt.Printf("%x\n", txt) 15 fmt.Printf("% x\n", txt) 16}

结果:

1Hello 2"Hello" 3 Hello 4Hello 548656c6c6f 648 65 6c 6c 6f

布尔格式化动词

以下动词适用于布尔数据类型:

动词描述
%t布尔运算符的 true 或 false 格式(与 %v 相同)

示例:

1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var i = true 9 var j = false 10 11 fmt.Printf("%t\n", i) 12 fmt.Printf("%t\n", j) 13}

结果:

1true 2false

浮点数格式化动词

以下动词适用于浮点数数据类型:

动词描述
%e科学计数法,指数为 'e'
%f小数点,无指数部分
%.2f默认宽度,精度为 2
%6.2f宽度 6,精度 2
%g必要时使用指数,仅保留必要的位数

示例:

1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 var i = 3.141 9 10 fmt.Printf("%e\n", i) 11 fmt.Printf("%f\n", i) 12 fmt.Printf("%.2f\n", i) 13 fmt.Printf("%6.2f\n", i) 14 fmt.Printf("%g\n", i) 15}

结果:

13.141000e+00 23.141000 33.14 4 3.14 53.141

请注意,这个翻译可能不是完美的,因为语言之间的表达方式可能有细微的差异。

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

PPDB:今晚老齐直播

【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。

VBox 启动虚拟机失败

在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern

FLV文件格式

1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.