在 Go 语言中,%v 和 %+v 都是格式化打印结构体的占位符。它们的区别如下:
- %v:默认格式化打印结构体,只输出结构体的所有字段值,字段之间以空格隔开。
- %+v:格式化打印结构体,会输出结构体类型和字段名称,字段之间以空格隔开。
例如,假设有一个结构体 Person 定义如下:
Go
type Person struct {
Name string
Age int
}
如果定义了一个 Person 类型的变量 p,并使用 fmt.Println() 函数打印它,则输出结果如下:
Go
p := Person{Name: "John Doe", Age: 30}
fmt.Println(p) // {John Doe 30}
使用 %v 占位符打印结构体,只会输出结构体的所有字段值,即 John Doe 和 30。
如果使用 %+v 占位符打印结构体,则会输出结构体类型和字段名称,即 Person{Name: John Doe, Age: 30}。
总结:
%v:默认格式化打印结构体,只输出字段值。%+v:格式化打印结构体,输出结构体类型和字段名称。
根据需要选择合适的占位符来打印结构体。
本文详细解释了Go语言中%v和%+v作为结构体打印占位符的区别:%v仅输出字段值,而%+v会显示结构体类型和字段名称。通过实例展示了如何根据需求选择适当的占位符进行结构体打印。
4053

被折叠的 条评论
为什么被折叠?



