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

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

DDD
发布: 2024-11-29 12:38:12
原创
278 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板