Go语言fmt包通过格式动词实现灵活输出:1. %v、%+v、%#v分别输出值、结构体字段及Go语法格式;2. %t、%d、%b、%o、%x等处理布尔和整数;3. %f、%e、%g控制浮点数;4. %s、%q格式化字符串;5. 宽度、精度和对齐通过%N、%.N等控制,提升输出可读性。

Go语言中的
fmt
包提供了丰富的格式化输出功能,通过格式动词(verbs)可以灵活控制输出内容的格式。掌握这些动词对编写清晰、可读性强的Go程序非常重要。
常用格式动词及其作用
格式动词以
%
开头,后接特定字符来表示输出类型。以下是最常用的动词:
%v:默认格式输出变量值,适用于所有类型 %+v:输出结构体时,会显示字段名和对应的值 %#v:输出Go语法表示的值,包括类型信息 %T:输出值的类型 %%:输出百分号本身例如:
type Person struct { Name string Age int}p := Person{"Alice", 30}fmt.Printf("%vn", p) // 输出:{Alice 30}fmt.Printf("%+vn", p) // 输出:{Name:Alice Age:30}fmt.Printf("%#vn", p) // 输出:main.Person{Name:"Alice", Age:30}fmt.Printf("%Tn", p) // 输出:main.Person
布尔与数值类型的格式化
针对布尔和数值类型,有专门的格式动词:
%t:输出布尔值,true或false %d:十进制整数 %b:二进制表示 %o:八进制表示 %x:十六进制小写 %X:十六进制大写 %U:Unicode码点(如U+1234) %c:输出对应的Unicode字符示例:
n := 255fmt.Printf("%dn", n) // 输出:255fmt.Printf("%bn", n) // 输出:11111111fmt.Printf("%on", n) // 输出:377fmt.Printf("%xn", n) // 输出:fffmt.Printf("%Xn", n) // 输出:FFfmt.Printf("%Un", '中') // 输出:U+4E2Dfmt.Printf("%cn", '中') // 输出:中
浮点数与字符串格式化
处理浮点数和字符串时,格式动词能更精细地控制输出精度和形式:
立即学习“go语言免费学习笔记(深入)”;
%f:十进制浮点数(默认6位小数) %F:同%f,但用大写INF和NAN %e:科学计数法(小写e) %E:科学计数法(大写E) %g:%e或%f的自动选择(更紧凑) %G:%E或%F的自动选择 %s:字符串输出 %q:带双引号的字符串或字符字面量 %x:字符串或字节切片的十六进制编码(小写) %X:十六进制大写,每字节用空格分隔示例:
f := 123.456789fmt.Printf("%.2fn", f) // 输出:123.46(保留两位小数)fmt.Printf("%.2en", f) // 输出:1.23e+02fmt.Printf("%gn", f) // 输出:123.456789str := "hello"fmt.Printf("%sn", str) // 输出:hellofmt.Printf("%qn", str) // 输出:"hello"fmt.Printf("%xn", str) // 输出:68656c6c6f
宽度、精度与对齐控制
可以在动词前添加参数控制输出宽度、精度和对齐方式:
%N:指定最小宽度,不足部分用空格填充 %-N:左对齐,宽度为N %.N:指定精度(如小数位数或最大字符数) %N.M:宽度N,精度M %0N:用0填充到宽度N示例:
fmt.Printf("|%10s|n", "hi") // 输出:| hi|fmt.Printf("|%-10s|n", "hi") // 输出:|hi |fmt.Printf("|%05d|n", 42) // 输出:|00042|fmt.Printf("%.3sn", "hello") // 输出:hel
基本上就这些常见用法。熟练使用
fmt
动词能让你的输出更清晰可控,调试和日志输出都会更高效。
以上就是Golang fmt格式化输出 动词使用详解的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1400734.html
微信扫一扫
支付宝扫一扫