从指向结构的指针中打印取消引用的结构

时间:2014-10-24 00:47:23

标签: go

在Golang中,有一种简单的方法可以打印调试取消引用的指针,给出一些指向结构的指针吗?

3 个答案:

答案 0 :(得分:6)

如果您不想使用不安全的外部包..您可以自己range

for _, p := range people {
    fmt.Printf("%+v\n", p)
}

输出:

&{name:Simon age:25}
&{name:Bob age:31}

工作样本:http://play.golang.org/p/aVw0rhQNuk

答案 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])