fmt.Sprintf(格式化输出)Go语⾔fmt.Sprintf(格式化输出)
fmt.Sprintf(格式化样式, 参数列表…)
格式化样式:字符串形式,格式化动词以%开头。
参数列表:多个参数以逗号分隔,个数必须与格式化样式中的个数⼀⼀对应,否则运⾏时会报错。
在 Go 语⾔中,格式化的命名延续C语⾔风格:
1. var progress = 2
2. var target = 8
3.
4. // 两参数格式化
5. title := fmt.Sprintf("已采集%d个药草, 还需要%d个完成任务", progress, target)
6.
7. fmt.Println(title)
8.
9. pi := 3.14159
10. // 按数值本⾝的格式输出
11. variant := fmt.Sprintf("%v %v %v", "⽉球基地", pi, true)
12.
13. fmt.Println(variant)
14.
15. // 匿名结构体声明, 并赋予初值
16. profile := &struct {
17. Name string
18. HP int
19. }{
20. Name: "rat",
21. HP: 150,
22. }
23.
24. fmt.Printf("使⽤'%%+v' %+v\n", profile)
25.
26. fmt.Printf("使⽤'%%#v' %#v\n", profile)
27.
28. fmt.Printf("使⽤'%%T' %T\n", profile)
var progress = 2
var target = 8
// 两参数格式化
title := fmt.Sprintf("已采集%d个药草, 还需要%d个完成任务", progress, target)
fmt.Println(title)
pi := 3.14159
// 按数值本⾝的格式输出c语言中的sprintf用法
variant := fmt.Sprintf("%v %v %v", "⽉球基地", pi, true)
fmt.Println(variant)
// 匿名结构体声明, 并赋予初值
profile := &struct {
Name string
HP  int
}{
Name: "rat",
HP:  150,
}
fmt.Printf("使⽤'%%+v' %+v\n", profile)
fmt.Printf("使⽤'%%#v' %#v\n", profile)
fmt.Printf("使⽤'%%T' %T\n", profile)
代码输出如下:
已采集2个药草, 还需要8个完成任务
"⽉球基地" 3.14159 true
使⽤'%+v' &{Name:rat HP:150}
使⽤'%#v' &struct { Name string; HP int }{Name:"rat", HP:150}
使⽤'%T' *struct { Name string; HP int }C语⾔中, 使⽤%d代表整型参数下表中标出了常⽤的⼀些格式化样式中的动词及功能。
表:字符串格式化时常⽤动词及功能
动词功能
%v按值的本来值输出
%+v在 %v 基础上,对结构体字段名和值进⾏展开
%#v输出 Go 语⾔语法格式的值
%T输出 Go 语⾔语法格式的类型和值
%%输出 % 本体
%b整型以⼆进制⽅式显⽰
%o整型以⼋进制⽅式显⽰
%d整型以⼗进制⽅式显⽰
%x整型以⼗六进制⽅式显⽰
%X整型以⼗六进制、字母⼤写⽅式显⽰
%U Unicode 字符
%f浮点数
%p指针,⼗六进制⽅式显⽰

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。