将 time.Date 分配给 *time.Time 指针以测试 JSON 反序列化

我有一个结构体,其中一个字段被声明为字符串,但它用于存储时间。因此,我将其更改为*time.Time(请参阅提交),注意使用指针绕过问题,",omitempty"即在空白日期的情况下不会真正省略该值。

到现在为止还挺好。问题是现在我正在尝试编写一个代码来测试 JSON 字符串的正确反序列化,但我无法将结果与

want := Record{Id: 1539, UpdatedAt: time.Date(2014, 01, 15, 22, 03, 04, 0, time.UTC)}

因为UpdatedAt预期是一个指针*time.Time,而time.Date返回一个time.Time

我不能用

want := Record{Id: 1539, UpdatedAt: &time.Date(2014, 01, 15, 22, 03, 04, 0, time.UTC)}

因为它确实被拒绝了(它需要一个指针,我尝试分配一个结构)

cannot take the address of time.Date(2014, 1, 15, 22, 3, 3, 0, time.UTC)

这是我的问题。有没有一种方法来创建一个Recordtime.Date上飞(因此不分配time.Date给一个变量,然后得到的指针)和/或对问题的解决方法,保证我能当对象被序列分配适当的零值/反序列化并且日期为空?


茅侃侃
浏览 157回答 2
2回答

慕勒3428872

你不能获取函数返回值的地址,因为你只能获取可以赋值的地址。可以这样想:如果将结果存储在变量中,则可以获取该变量的地址,但如果不这样做,则无法从中获取地址。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go