Pointers 如何在golang中正确打印指针变量
当我使用Pointers 如何在golang中正确打印指针变量,pointers,go,Pointers,Go,当我使用 type person struct{} var tom *person = &person{} fmt.Printf("%+v\n", tom)//prints:&{} 为什么结果是&plus数据?它是一个地址(0x0055) 当我使用 type person struct{} var tom *person = &person{} fmt.Printf("%+v\n", tom)//prints:&{} 它给我一个地址,它给我0x0038,为
type person struct{}
var tom *person = &person{}
fmt.Printf("%+v\n", tom)//prints:&{}
为什么结果是&plus数据?它是一个地址(0x0055)
当我使用
type person struct{}
var tom *person = &person{}
fmt.Printf("%+v\n", tom)//prints:&{}
它给我一个地址,它给我0x0038,为什么%v和%p有相同的结果?
tom
是指向人的指针。当您使用&tom
时,您正在创建第二个指针,这是指向一个人的指针
在第一个示例中,您使用%+v
打印tom
的默认值。默认值遵从指针并打印结构本身
在第二个示例中,%+v
应用于“double”指针。它仍然遵从指针,到达初始指针。请参见此示例:当您使用%v时,是的。@VitorDeMario我感到困惑,请帮助我。我只是评论了几行。