我有一个结构,其中一个字段被声明为String,但它旨在存储时间。因此,我将其更改为*time.Time(请参阅commit),请注意使用指针绕过问题(在",omitempty"空白日期的情况下实际上并没有忽略该值)。
到目前为止,一切都很好。问题是,现在我正在尝试编写代码以测试JSON字符串的正确反序列化,但是我无法将结果与
want := Record{Id: 1539, UpdatedAt: time.Date(2014, 01, 15, 22, 03, 04, 0, time.UTC)}
Run Code Online (Sandbox Code Playgroud)
因为UpdatedAt它应该是一个指针*time.Time,而time.Date返回一个time.Time。
我不能用
want := Record{Id: 1539, UpdatedAt: &time.Date(2014, 01, 15, 22, 03, 04, 0, time.UTC)}
Run Code Online (Sandbox Code Playgroud)
因为它确实被拒绝(它需要一个指针,所以我尝试分配一个结构)
cannot take the address of time.Date(2014, 1, 15, 22, 3, 3, 0, time.UTC)
Run Code Online (Sandbox Code Playgroud)
这是我的问题。有没有一种方法来创建一个Record与time.Date上飞(因此不分配time.Date给一个变量,然后得到的指针)和/或对问题的解决方法,保证我能当对象被序列分配适当的零值/反序列化并且日期为空?
Dar*_*all 10
您想先将日期值存储在一个变量中,然后再使用该变量的指针。
myDate := time.Date(2014, 01, 15, 22, 03, 04, 0, time.UTC)
want := Record{Id: 1539, UpdatedAt: &myDate}
Run Code Online (Sandbox Code Playgroud)
您不能采用函数返回值的地址,因为您只能采用可以分配给对象的地址。
可以这样考虑:如果将结果存储在变量中,则可以获取该变量的地址,但是如果不这样做,则没有任何可以从中获取地址的地址。
| 归档时间: |
|
| 查看次数: |
2995 次 |
| 最近记录: |