Pointers 如何访问指向结构的指针的值?
我有一个变量,它等于以下结构的指针:Pointers 如何访问指向结构的指针的值?,pointers,go,Pointers,Go,我有一个变量,它等于以下结构的指针: type Conn struct { rwc io.ReadWriteCloser l sync.Mutex buf *bytes.Buffer } 因此 返回 {rwc:0xc42000e080 l:{state:0 sema:0} buf:0xc42005db20} 如何查看地址0xc42000e080和0xc42005db20处的值 我的最终目标是检查它,因为它是在连接到memcache时使用的,如果memcache中断,我将尝试重
type Conn struct {
rwc io.ReadWriteCloser
l sync.Mutex
buf *bytes.Buffer
}
因此
返回
{rwc:0xc42000e080 l:{state:0 sema:0} buf:0xc42005db20}
如何查看地址0xc42000e080和0xc42005db20处的值
我的最终目标是检查它,因为它是在连接到memcache时使用的,如果memcache中断,我将尝试重新建立连接,并需要检查它以解决此问题。我不确定您为什么需要一个单独的库来解决此问题。直截了当的答案是,您可以直接在结构内部解除对rwc的引用 所以,你会这样做
fmt.Printf("---*cn: %+v\n", *(cn.rwc))
假设导入了
Conn
,并且您无法使用标准访问未报告的字段,则可以使用reflect
包绕过该限制
rv := reflect.ValueOf(cn)
fmt.Println(rv.FieldByName("buf").Elem())
您可以在包中使用
Render
函数,而不是使用*获取指针的值,如果指针为零,则*将崩溃
只需导入库即可:
fmt.Printf("Connection: %v", render.Render(<your variable>))
fmt.Printf(“连接:%v”,render.render())
使用像.hmm…这样的库,有没有关于如何在没有这个的情况下这样做的建议?
fmt.Printf("Connection: %v", render.Render(<your variable>))