gpt4 book ai didi

pointers - 如何在不明确指定该字段的情况下打印字段的取消引用值golang

转载 作者:IT王子 更新时间:2023-10-29 02:21:15 25 4
gpt4 key购买 nike

package main

import (
"fmt"
)

type outer struct {
in *int
}

func main() {
i := 4
o := outer{&i}
fmt.Printf("%+v", o)
}

我希望在结尾处看到 {in:4},而不是 {in:0x......},即漂亮地打印数据结构。

我想以与发布的代码类似的方式完成此操作(例如,使用类似于 %+v 的 fmt 快捷方式或类似的解决方案)。

这是用于从 thrift 结构的必填字段自动生成的代码。

解决这个问题的最佳方法是什么?

最佳答案

当您使用 &i 时,它不会取消引用 i。相反,它引用 i,这意味着它将i 的地址复制到o 中。请参阅 Address operators 的文档.

据我所知,您应该能够使用*o取消引用 指针;换句话说,从地址返回到原始变量。

For an operand x of pointer type *T, the pointer indirection *x denotes the variable of type T pointed to by x. If x is nil, an attempt to evaluate *x will cause a run-time panic.

关于pointers - 如何在不明确指定该字段的情况下打印字段的取消引用值golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48653386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com