首页 >后端开发 >Golang >如何正确打印Go中结构体的地址?

如何正确打印Go中结构体的地址?

DDD
DDD原创
2024-11-29 12:38:12277浏览

How to Correctly Print the Address of a Struct in Go?

理解 Go 中的结构体地址打印

在 Go 中,理解打印结构体变量地址的概念至关重要。让我们深入研究一个特定的查询及其解决方案。

查询:

第一次遇到 Go 的用户想要打印结构体变量 r 的地址。尽管使用了预期的 & 运算符,但输出显示 {15 6} 而不是预期的地址。

代码片段:

type Rect struct {
  width int
  name int
}

func main() {
  r := Rect{4, 6}
  p := &r
  p.width = 15

  fmt.Println("-----", &p, r, p, &r)
}

分析:

默认情况下,fmt.Println() 使用 %v 格式来处理通过打印字段来特殊构造。要直接打印地址,需要特定的格式字符串。

解决方案:

要打印 r 的地址,%p 动词必须与格式一起使用细绳。该动词专门表示打印指针值。

fmt.Printf("%p\n", &r)

这将正确输出 r 的地址,例如 0x414020。

此外,可以使用以下方式将地址存储在变量中以下语法:

addr := &r

现在,addr 将保存指向 r 的指针。

以上是如何正确打印Go中结构体的地址?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn