You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言中如何为*time.Time类型的结构体字段正确初始化

错误原因

Payload结构体中Timestamp字段声明为*time.Time指针类型,而time.Now()的返回值为time.Time值类型,二者类型不匹配导致编译报错。

实现方案

你需要先获取当前UTC时间,再将其地址赋值给Timestamp字段即可。注意Go语言不支持直接对函数返回的临时值取地址,所以不能直接写&time.Now().UTC(),可以选择以下两种写法:

写法1:拆分赋值(可读性更高,推荐新手使用)

// 先将当前UTC时间存入变量
nowUTC := time.Now().UTC()
payload:= &device.Payload{
    // 其余字段初始化
    Timestamp: &nowUTC,
    // 其余字段初始化
}

写法2:匿名函数一次性赋值

payload:= &device.Payload{
    // 其余字段初始化
    Timestamp: func() *time.Time { t := time.Now().UTC(); return &t }(),
    // 其余字段初始化
}

内容的提问来源于stack exchange,提问作者Ayush Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:09:04