在Golang中,有一种简单的方法可以打印调试取消引用的指针,给出一些指向结构的指针吗?
答案 0 :(得分:6)
如果您不想使用不安全的外部包..您可以自己range
:
for _, p := range people {
fmt.Printf("%+v\n", p)
}
输出:
&{name:Simon age:25}
&{name:Bob age:31}
答案 1 :(得分:0)
也许这是一个较晚的答案,但我遇到了同样的问题,想在这里为任何需要的人保存我的选择。
我在项目类型中添加了String()
函数。例如:
type SliceItem struct {
ID int32
Name string
}
func (i *SliceItem) String() string {
return fmt.Sprintf("id = %d, name = %s\n", i.ID, i.Name)
}
结果,每当我想要打印此项目时,我都会得到友好的“ id = xx,name = xxx”字符串,而不是无法读取的指针地址。
答案 2 :(得分:0)
如果要打印单个元素,请尝试使用索引和星号进行解引用:
fmt.Println(*pointer_strcut_slice[0])
fmt.Println(*pointer_strcut_slice[1])