Go语言程序打印结构体指针
在Go语言中,结构体是一种用户定义的类型,它由一系列具有任意类型的属性组成。如果想要在程序中打印一个结构体指针,可以使用%+v格式化参数。接下来我们将通过示例代码来了解Go语言程序如何打印结构体指针。
首先,我们定义一个Person结构体:
type Person struct {
Name string
Age int
Sex string
}
然后,我们创建一个Person结构体指针:
p := &Person{"Tom", 20, "Male"}
现在,我们可以使用%+v格式化参数来打印Person结构体指针:
fmt.Printf("%+v\n", p)
输出结果为:
&{Name:Tom Age:20 Sex:Male}
可以看到,输出结果显示了结构体指针的属性和值。%+v格式化参数会输出结构体的字段名和值,并换行输出每个字段。
除了%+v,还有其他的格式化参数可供我们使用。比如,我们可以使用%#v来输出Go语言程序中的值的源代码表示形式。如下所示:
fmt.Printf("%#v\n", p)
输出结果为:
&main.Person{Name:"Tom", Age:20, Sex:"Male"}
可以看到,输出结果使用了Go语言程序可执行的语法表示形式。
如果你想要输出结果时使用一定的缩进,可以使用%T格式化参数。如下所示:
fmt.Printf("%T\n%+v\n", p, p)
输出结果为:
*main.Person
&{Name:Tom Age:20 Sex:Male}
可以看到,第一行输出了指针类型,第二行输出了缩进格式化后的结构体指针内容。
最后,我给出完整的示例代码,展示如何打印结构体指针:
package main
import "fmt"
type Person struct {
Name string
Age int
Sex string
}
func main() {
p := &Person{"Tom", 20, "Male"}
fmt.Printf("%+v\n", p)
fmt.Printf("%#v\n", p)
fmt.Printf("%T\n%+v\n", p, p)
}
结论
通过本文的示例代码,我们了解了Go语言程序如何打印结构体指针。在Go语言中,我们可以使用%+v格式化参数来打印结构体指针。此外,还有其他的格式化参数可供使用,比如%#v和%T。在实际开发中,我们可以根据需要选择不同的格式化参数来输出结构体指针,以便更好地理解和调试代码。
极客笔记