golang:%v,%+v,%#v的区别

时间:2025-03-08 09:37:28
%v 按默认格式输出
%+v 在%v的基础上额外输出字段名
%#v 在%+v的基础上额外输出类型名

示例代码:

package main

import "fmt"

type T struct{
	a int 
	b float64
}
func test(){
	t:=T{
		a:1,
		b:2.0,
	}
	fmt.Printf("%v\n",t)
	fmt.Printf("%+v\n",t)
	fmt.Printf("%#v\n",t)
}
func main(){
	test()
}

输出结果:

PS E:\goproject> go run "e:\goproject\go_test1\"
{1 2}
{a:1 b:2}
main.T{a:1, b:2}