go结构体打印时,%v 和 %+v 的区别

在 Go 语言中,%v 用于打印结构体时会输出该结构体的值,而 %+v 会在输出结构体的值的同时,输出该结构体的字段名。例如:

type Person struct {
    Name string
    Age  int
}

p := Person{"Bob", 20}

fmt.Printf("%v
", p)  // 输出:{Bob 20}
fmt.Printf("%+v
", p) // 输出:{Name:Bob Age:20}

因此,%+v 会比 %v 更容易理解,因为它会输出字段名,而不是仅输出值。