广告
返回顶部
首页 > 资讯 > 后端开发 > GO >GoLang - 如何将值初始化为 *time.Time
  • 199
分享到

GoLang - 如何将值初始化为 *time.Time

2024-04-05 00:04:32 199人浏览 安东尼
摘要

学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《golang - 如何将值初始化为 *time.Time》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过

学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《golang - 如何将值初始化为 *time.Time》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我在某些 device.go 文件中定义了一个结构

type payload struct {
    ...
    timestamp *time.time  `JSON:"timestamp,omitempty"`
    ...
}

现在我想在其他文件中初始化这个结构,我正在尝试这样做:

payload:= &device.Payload{
    ....
    Timestamp: time.Now(), // throws error
    ... //other initializations work fine
}

不能使用 time.now() (time.time 类型的值)作为 *time.time 值 结构体字面量

我想将变量初始化为当前 utc 时间。我是 golang 新手。我该怎么做?


正确答案


time.Now() 返回类型为 time.Time 的值,该值不是 *time.time

请注意,您也不能获取函数调用的返回值的地址,也不能执行 &time.now() 。详情请见How to get the pointer of return value from function call?

您可以做的是使用 time.time 类型的变量并获取其地址:

var t = time.now()

payload:= &device.payload{
    timestamp: &t,
}

另一个“流行”选项是创建一个辅助函数来返回 time.time 值的地址(您可以直接将函数调用的返回值传递给该函数):

func timeptr(t time.time) *time.time {
    return &t
}

payload:= &device.payload{
    timestamp: timeptr(time.now()),
}

有关详细信息和其他选项,请参阅 How do I do a literal *int64 in Go?

我假设您需要一个指针,因为您希望允许“缺失时间”选项,这对于 encoding/json 包尊重“缺失时间”是必要的(详细信息:JSON omitempty With time.Time Field)。请注意,在其他情况下,可能不需要自动转向指针:您可以使用 time.time (这是一个结构)的零值来指示“缺失时间”状态。要轻松判断 time.time 是否为零值,您可以使用 Time.IsZero()。请参阅相关内容:Idiomatic way to represent optional time.Time in a struct

time.now() 返回一个 time 值,但您的结构正在寻找指针。将您的结构更改为

type Payload struct {
    ...
    Timestamp time.Time  `json:"timestamp,omitempty"`
    ...
}

来自文档(https://pkg.go.dev/time#Time):

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~

您可能感兴趣的文档:

--结束END--

本文标题: GoLang - 如何将值初始化为 *time.Time

本文链接: https://www.lsjlt.com/news/596807.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python如何初始化列表的值
    这篇文章主要介绍了python如何初始化列表的值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。初始化列表的值items = [0]*3print ...
    99+
    2023-06-04
  • 如何将阿里云服务器初始化出来
    本文将详细介绍如何将阿里云服务器初始化出来,包括服务器的配置、软件安装和调试等步骤。阿里云服务器是一种云基础架构服务,可以提供弹性的计算、存储和网络资源,以满足企业对灵活计算和大规模存储的需求。在使用阿里云服务器之前,我们需要对其进行初始化...
    99+
    2023-12-14
    阿里 初始化 如何将
  • 如何理解C++ 结构体初始化与赋值
    本篇文章给大家分享的是有关如何理解C++ 结构体初始化与赋值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.结构体初始化结构体是常用的自定义构造类型,是一种很常见的数据打包方...
    99+
    2023-06-25
  • Linux中如何将分区初始化为物理卷,把物理卷加入卷组
    这篇文章主要介绍了Linux中如何将分区初始化为物理卷,把物理卷加入卷组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用到的命令有1、pvcreate  (physical ...
    99+
    2023-06-09
  • javascript如何将值转化为int类型
    这篇文章给大家分享的是有关javascript如何将值转化为int类型的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 javascript将值转化为i...
    99+
    2022-10-19
  • Java如何将字符串转化为hash值
    在Java中,可以使用hashCode()方法将字符串转化为哈希值。hashCode()方法是String类的一个成员方法,可以直接...
    99+
    2023-09-11
    Java
  • 如何解决vuex数据异步造成初始化时没值报错的问题
    这篇文章主要介绍如何解决vuex数据异步造成初始化时没值报错的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!当使用vue做登录的时候,我们会把拿到的部分用户信息存在vuex+co...
    99+
    2022-10-19
  • 探讨Google是如何将自己的代码库转化为Golang的
    作为现代编程领域中最受欢迎的编程语言之一,Go语言(Golang)已经成为越来越多程序员的首选。即使是像Google这样的科技巨头,也在逐渐将其内部代码从其他语言转化为Golang。在本文中,我们将探讨Google是如何将自己的代码库转化为...
    99+
    2023-05-14
  • 如何解决vue2.0动态绑定图片src属性值初始化时报错的问题
    这篇文章主要为大家展示了“如何解决vue2.0动态绑定图片src属性值初始化时报错的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决vue2.0动态绑...
    99+
    2022-10-19
  • python如何使用dataframe将csv中的0值数据转化为nan缺失值字样
    这篇文章主要介绍python如何使用dataframe将csv中的0值数据转化为nan缺失值字样,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用到这个语句。c[c==0]=np.nan我们具体来看一下c和np是什么n...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作