猿问

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

我使用 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)

我希望你能帮忙。这个问题感觉很愚蠢,因为我在谷歌搜索时找不到任何关于它的信息。我觉得我只是在这里错过了一些东西;-)


慕少森
浏览 383回答 1
1回答

慕妹3242003

var t *time.Time = &time.Now()var t2 time.Time = *t就像在 C 中一样,&表示“地址”并分配一个标记为 的指针*T。但*也意味着“值”,或取消引用指针,并分配值。这有点题外话,但 IMO 这种双重使用*是 C 新手和朋友对指针感到困惑的部分原因。
随时随地看视频慕课网APP

相关分类

Go
我要回答