fmt
Go 语言标准库中 fmt 包用于格式化 I/O。它提供了一系列函数来格式化输出到控制台或其他输出流,并支持格式化字符串、错误输出、调试信息等。
常用函数
fmt.Println()
作用:打印一行文本并自动换行。
|  |  | 
fmt.Printf()
作用:根据格式字符串打印格式化文本。
|  |  | 
更多格式化 verbs 参考 附录:verbs
fmt.Sprintf()
作用:根据格式字符串返回格式化后的字符串,而不是直接打印出来。
|  |  | 
fmt.Errorf()
作用:用于生成错误信息。
|  |  | 
参考资料
- 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前缀
对于复合对象,元素将按照以下规则递归地打印:
|  |  | 
附录:%v 的默认格式
| 类型 | 默认格式 | 
|---|---|
| bool | %t | 
| int、int8等 | %d | 
| uint、uint8等 | %d,如果与%#v一起打印,则为%#x | 
| float32、complex64等 | %g | 
| string | %s | 
| chan | %p | 
| pointer | %p |