为了账号安全,请及时绑定邮箱和手机立即绑定

如何将指针“转换”回 Golang 中的值?

如何将指针“转换”回 Golang 中的值?

Go
慕少森 2021-09-21 16:17:25
我使用 time.Time 作为我的结构之一中的指针。例如type struct Example{    CreatedDate *time.Time}我正在使用指针,因此如果不存在日期,我可以将 nil 传递给结构。然而,这现在确实造成了问题,因为我需要使用 time.Since(then) 函数,该函数不接受指针作为参数,而是需要 time.Time。所以...将“&”放在结构体前面很容易,例如。&time.Time,但是如果你有一个指针,你怎么能把它反转,回到例如。一种时间。时间?例如。(不起作用,但可能会让您了解我的意思)var t *time.Time = &time.Now()var t2 time.Time = t.(time.Time)我希望你能帮忙。这个问题感觉很愚蠢,因为我在谷歌搜索时找不到任何关于它的信息。我觉得我只是在这里错过了一些东西;-)
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

var t *time.Time = &time.Now()

var t2 time.Time = *t

就像在 C 中一样,&表示“地址”并分配一个标记为 的指针*T。但*也意味着“值”,或取消引用指针,并分配值。


这有点题外话,但 IMO 这种双重使用*是 C 新手和朋友对指针感到困惑的部分原因。


查看完整回答
反对 回复 2021-09-21
  • 1 回答
  • 0 关注
  • 382 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信