本文最后更新于 1 年前 ,文中信息可能已经过时。如有问题请在评论区留言。
fmt
Go 语言标准库中 fmt 包用于格式化 I/O。它提供了一系列函数来格式化输出到控制台或其他输出流,并支持格式化字符串、错误输出、调试信息等。
常用函数
fmt.Println()
作用:打印一行文本并自动换行。
go
| |
fmt.Printf()
作用:根据格式字符串打印格式化文本。
go
| |
更多格式化 verbs 参考 附录:verbs
fmt.Sprintf()
作用:根据格式字符串返回格式化后的字符串,而不是直接打印出来。
go
| |
fmt.Errorf()
作用:用于生成错误信息。
go
| |
参考资料
- fmt - Go 语言标准库
- 《The Go Programming Language》
附录:verbs
包 fmt 实现了格式化的 I/O,其中的函数类似于 C 语言中的 printf 和 scanf。格式化的 verbs 源自 C 语言,但更简单。
General
%v:默认格式中的值。(即变量的自然形式,各类型的默认格式可参考 附录:%v 的默认格式) 当打印结构体时,使用加号标志(%+v)会添加字段名。%#v:值的 Go 语法表示形式%T:值的类型的 Go 语法表示形式%%:字面上的百分号
Boolean
%t:单词true或false
Integer
%b:二进制%c:字符(rune)(Unicode 码点)%d:十进制%o:八进制%O:带有0o前缀的八进制%q:安全转义的单引号字符文字,采用 Go 语法%x:十六进制,小写字母a-f%X:十六进制,大写字母A-F%U:Unicode 格式:U+1234;与U+%04X相同
Floating-point and complex constituents
%b:指数为二的幂的无小数科学记数法,类似于带有 ‘b’ 格式的strconv.FormatFloat,例如,-123456p-78%e:科学记数法,例如,-1.234456e+78%E:科学记数法,例如,-1.234456E+78%f:小数点但没有指数,例如,123.456%F:%f的同义词%g:大指数使用%e,否则使用%f%G:大指数使用%E,否则使用%F%x:十六进制表示法(具有二的幂的十进制指数),例如,-0x1.23abcp+20%X:大写十六进制表示法,例如,-0X1.23ABCP+20
String and slice of bytes(treated equivalently with these verbs)
%s:字符串%q:安全转义的双引号字符串,采用 Go 语法%x:十六进制,小写,每个字节两个字符%X:十六进制,大写,每个字节两个字符
Slice
%p:以十六进制表示的第 0 个元素的地址,带有0x前缀
Pointer
%p:以十六进制表示,带有0x前缀
对于复合对象,元素将按照以下规则递归地打印:
text
| |
附录:%v 的默认格式
| 类型 | 默认格式 |
|---|---|
bool | %t |
int、int8 等 | %d |
uint、uint8 等 | %d,如果与 %#v 一起打印,则为 %#x |
float32、complex64 等 | %g |
string | %s |
chan | %p |
pointer | %p |


感谢您的耐心阅读!来选个表情,或者留个评论吧!