根据我的要求,我创建了一个结构体--
type MyRule struct {
CreatedAt time.Time `json:"createdAt" datastore:"createdAt,noindex"`
UpdatedAt *time.Time `json:"updatedAt" datastore:"updatedAt,noindex"`
}
对于createdAt字段,我可以将当前时间存储为-
MyRule.CreatedAt = time.Now()
但是,同一时间无法将当前时间存储在updatedAt
结构的MyRule
字段中,因为它的类型是*time.Time
而不是time.Time
。
在这里,我无法更改updatedAt
的字段类型,因为创建任何规则时,*time.Time
允许我接受nil作为updatedAt
的值。
如果我尝试这样做-
MyRule.UpdatedAt = time.Now()
它给我下面的错误-
cannot use time.Now()(type time.Time) as type *time.Time in assignment
如何在* time.Time类型而不是time.Time类型的updatedAt字段中存储当前时间值
答案 0 :(得分:1)
注意:无法获得返回值的地址,所以这样的操作将 不 起作用:
MyRule.UpdatedAt = &time.Now() // compile fail
要获取值的地址,该值必须位于可寻址的项目中。因此,将值分配给变量,如下所示:
t := time.Now()
MyRule.UpdatedAt = &t