Go 格式化动词
Printf() 的格式化动词
Go 提供了几个可与 Printf()
函数一起使用的格式化动词。
一般格式动词
以下动词可用于所有数据类型:
Verb | 描述 |
---|---|
%v | 以默认格式打印值 |
%#v | 以 Go 语法格式打印值 |
%T | 打印值的类型 |
%% | 打印 % 符号 |
实例
package main
import ("fmt")
func main() {
var i = 15.5
var txt = "Hello World!"
fmt.Printf("%v\n", i)
fmt.Printf("%#v\n", i)
fmt.Printf("%v%%\n", i)
fmt.Printf("%T\n", i)
fmt.Printf("%v\n", txt)
fmt.Printf("%#v\n", txt)
fmt.Printf("%T\n", txt)
}
结果:
15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string
整数格式化动词
以下动词可用于整数数据类型:
动词 | 描述 |
---|---|
%b | 基础 2 |
%d | 基数 10 |
%+d | 以 10 为底,始终显示符号 |
%o | 基地 8 |
%O | 以 8 为底,以 0o 开头 |
%x | Base 16,小写 |
%X | Base 16,大写 |
%#x | Base 16,前导 0x |
%4d | 用空格填充(宽度 4,右对齐) |
%-4d | 用空格填充(宽度 4,左对齐) |
%04d | 用零填充(宽度 4 |
实例
package main
import ("fmt")
func main() {
var i = 15
fmt.Printf("%b\n", i)
fmt.Printf("%d\n", i)
fmt.Printf("%+d\n", i)
fmt.Printf("%o\n", i)
fmt.Printf("%O\n", i)
fmt.Printf("%x\n", i)
fmt.Printf("%X\n", i)
fmt.Printf("%#x\n", i)
fmt.Printf("%4d\n", i)
fmt.Printf("%-4d\n", i)
fmt.Printf("%04d\n", i)
}
结果:
1111
15
+15
17
0o17
f
F
0xf
15
15
0015
字符串格式化动词
以下动词可用于字符串数据类型:
动词 | 描述 |
---|---|
%s | 将值打印为纯字符串 |
%q | 将值打印为双引号字符串 |
%8s | 将值打印为纯字符串(宽度 8,右对齐) |
%-8s | 将值打印为纯字符串(宽度 8,左对齐) |
%x | 将值打印为字节值的十六进制转储 |
%x | 将值打印为带空格的十六进制转储 |
实例
package main
import ("fmt")
func main() {
var txt = "Hello"
fmt.Printf("%s\n", txt)
fmt.Printf("%q\n", txt)
fmt.Printf("%8s\n", txt)
fmt.Printf("%-8s\n", txt)
fmt.Printf("%x\n", txt)
fmt.Printf("% x\n", txt)
}
结果:
Hello
"Hello"
Hello
Hello
48656c6c6f
48 65 6c 6c 6f
布尔格式化动词
以下动词可以与布尔数据类型一起使用:
动词 | 描述 |
---|---|
%t | 布尔运算符的值,true 或 false 格式(与使用 %v 相同) |
实例
package main
import ("fmt")
func main() {
var i = true
var j = false
fmt.Printf("%t\n", i)
fmt.Printf("%t\n", j)
}
结果:
true
false
浮点格式动词
以下动词可以与浮点数据类型一起使用:
动词 | 描述 |
---|---|
%e | 以'e'为指数的科学记数法 |
%f | 小数点,无指数 |
%.2f | 默认宽度,精度2 |
%6.2f | 宽度 6,精度 2 |
%g | 根据需要指数,只有必要的数字 |
实例
package main
import ("fmt")
func main() {
var i = 3.141
fmt.Printf("%e\n", i)
fmt.Printf("%f\n", i)
fmt.Printf("%.2f\n", i)
fmt.Printf("%6.2f\n", i)
fmt.Printf("%g\n", i)
}
结果:
3.141000e+00
3.141000
3.14
3.14
3.141