如何";铸造;指向Golang中某个值的指针?
我在我的一个结构中使用time.time作为指针。乙二醇如何";铸造;指向Golang中某个值的指针?,go,Go,我在我的一个结构中使用time.time作为指针。乙二醇 type struct Example{ CreatedDate *time.Time } 我使用的是指针,所以如果不存在日期,我可以将nil传递给结构 但是,现在这确实带来了一个问题,因为我需要使用time.since(then)函数,它不接受指针作为参数,而是使用time.time 所以 将“&”放在结构前面很容易,例如&time.time,但是如果你有一个指针,你怎么能将它反转,回到例如一种time.time (不起作用,
type struct Example{
CreatedDate *time.Time
}
我使用的是指针,所以如果不存在日期,我可以将nil传递给结构
但是,现在这确实带来了一个问题,因为我需要使用time.since(then)函数,它不接受指针作为参数,而是使用time.time
所以
将“&”放在结构前面很容易,例如&time.time,但是如果你有一个指针,你怎么能将它反转,回到例如一种time.time
(不起作用,但可能让你明白我的意思)
我希望你能帮忙。这个问题感觉很傻,因为我在谷歌搜索时找不到任何关于它的信息。我觉得我只是错过了一些东西;-)
就像在C中一样,&
表示“的地址”,并分配一个标记为*T
的指针。但是*
也表示“value of”,或取消对指针的引用,并指定值
这有点离题了,但在我看来,
*
的这种双重用途部分是让C语言的新手和朋友们对指针感到困惑的原因。这叫做取消指针引用。我对此感到困惑,这让我想到这里:p
var t *time.Time = &time.Now()
var t2 time.Time = t.(time.Time)
var t *time.Time = &time.Now()
var t2 time.Time = *t