如何"演员"指向Golang中的值的指针?

时间:2015-03-12 21:27:00

标签: go

我使用time.Time作为我的一个结构中的指针。例如

type struct Example{
    CreatedDate *time.Time
}

我使用指针,所以如果不存在日期,我可以将nil传递给结构。

现在这确实存在问题,因为我需要使用time.Since(then)函数,它不接受指针作为参数,但需要一些时间。而不是。时间。

因此...

它很容易放入"&"在结构前面,例如。 & time.Time,但是如果你有一个指针,你怎么能扭转它,回到例如。一种时间。时间?

EG。 (不起作用,但可能会让你知道我的意思)

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

我希望你能提供帮助。这个问题感觉非常愚蠢,因为我在google搜索时无法找到任何相关信息。我觉得我在这里错过了一些东西; - )

1 个答案:

答案 0 :(得分:13)

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

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

这有点偏离主题,但IMO对*的双重使用部分是因为C中的新手和朋友对指针感到困惑。