Go:如何检查结构体属性是否显式设置为零值?

2023-12-23

type Animal struct {
    Name string
    LegCount int
}

snake := Animal{Name: "snake", LegCount: 0}
worm := Animal{Name: "worm"}

问题:我怎样才能检查snake and worm设置完毕后,告诉他们:

  1. snake被明确设置为LegCount of 0.
  2. The worm's LegCount没有明确设置(因此基于其默认值)?

根本无法区分。

如果要从 XML 或 JSON 解组数据,请使用指针。

type Animal struct {
    Name *string
    LegCount *int
}

你会得到nil缺失字段的值。

您可以在您的情况下使用相同的约定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go:如何检查结构体属性是否显式设置为零值? 的相关文章

随机推荐

  • 仅将数据添加到特定列

    我正在尝试找到一种方法将数据从一个数据网格添加到另一个数据网格 并将该数据一次仅插入到我的第二个数据网格中的一列中 每次创建特定列Add按钮已被点击 到目前为止我的编码 private void btnFeedbackAddSupplier
  • 覆盖 Symfony2 中的单一路由

    如何覆盖 Symfony2 中的单个路由 我有一个捆绑包 其中包含bundle routing yml file 在扩展此父包的包中 我还有路由文件 routing xml请注意 这些文件的名称不同 在这个路由文件中 我喜欢覆盖单个父路由
  • 构建 R:--with-libtiff 未启用 TIFF 功能

    编译R 3 3 2从源头 我的标志包括 with libtiff 他们是 configure with system tre with blas with lapack with libtiff enable R shlib enable
  • 自动刷新过滤器

    我正在使用过滤器来显示添加内容后的时间 angular module filters fromNow function return function date return moment date fromNow 如何每分钟自动触发过滤器
  • 如何解决 YACC 移位/减少后增量运算符的冲突?

    我正在用 YACC 实际上是 Bison 编写语法 并且遇到了移位 归约问题 它是包含后缀递增和递减运算符的结果 这是语法的精简版本 token NUMBER ID INC DEC left left right PREINC left P
  • 我是否在 java.io.PipedInputStream 中发现了错误?

    我不确定 但我非常确定我在 Oracle Java 实现中发现了一个错误 或未记录的功能 我可以验证 1 7 0 67 和 1 8 0 31 是否受影响 症状 当管道已满时 对管道的写入可能会比管道再次空闲所需的时间多等待一秒 该问题的一个
  • iPhone SDK 3.0 - wait_fences:未能收到回复:10004003 [重复]

    这个问题在这里已经有答案了 我一直在开发 iPhone 应用程序 自从我开始在 SDK 3 0 上构建以来 每当应用程序尝试与我的网络服务器通信时 我都会收到此错误 一切似乎都运行良好 但我找不到任何可以解释该消息的根本原因的内容 任何帮助
  • 使用 userEvent.click 错误的 act() 警告响应测试库

    我有几个用 Jest 和 React 测试库编写的测试 它们都模拟获取并使用 userEvent click 调用来触发发出获取请求的提交按钮 组件中的状态得到更新 我做出断言 我正在使用 useEffect 挂钩来填充数据数组 但它仅在初
  • 如何使用 Youtube v3 API 获取 Youtube 视频的 mp4 url

    如何获取完整的 mp4 url 以使用除 Youtube 之外的其他来源从应用程序中的实际位置播放视频 gdata youtube API 已被弃用 所以我遇到了麻烦 任何帮助将不胜感激 谢谢 我做了一个非常简单的API https gis
  • 如何将休眠与 MS Access 结合使用?

    我想将休眠与 MS Access 一起使用 我应该使用哪种方言 您能给我一个带有 MS Access 的休眠配置文件示例吗 实际解决方案在这里 在花了 1 天尝试不同的解决方案 ODBC HXTT 等之后 我发现了这个美妙之处 http u
  • ASP.NET Core 路由不起作用

    路由器的配置方式如下 app UseMvc routes gt routes MapRoute name api template api action id app UseMvc routes gt routes MapRoute nam
  • 为什么 nl_langinfo(CODESET) 与 locale charmap 不同?

    此帖源自如何获取您的系统在 c c 中使用哪种编码 https stackoverflow com questions 1492918 how do you get what kind of encoding your system use
  • 从 Excel 单元格读取

    我在用EPPlus http epplus codeplex com 用于从 xlsx 文件读取的包 我需要从单元格中读取 TimeSpan 对象 Excel 单元格将包含 hh mm 格式的数据 例如 09 00 或 18 30 不带引号
  • Lua Web 开发使用什么 Web 服务器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Zend_Paginator 作为对象返回

    Zend Paginator 将结果作为标准数组返回 但我需要使结果作为类的实例返回 我该怎么做 例如 我想要所有新闻文章 因此需要我的项目作为 News Model Article 的实例返回 您还可以创建自定义 zend paginat
  • 如何从网页中的多个表中抓取内容

    我想从网页中的多个表中抓取内容 HTML 代码如下所示 div class fixtures table full table medium h2 class table header Date 1 h2 table class table
  • 解释基本 Prolog 结果

    我对 Prolog 的基础知识感到困惑 如果我有这个知识库 loves vincent mia loves marcellus mia loves pumpkin honey bunny loves honey bunny pumpkin
  • 当软键盘出现时,工具栏向上移动

    我想让我的活动布局在键盘出现时调整大小 但同时保持其工具栏位置不变 到目前为止 当我单击编辑文本并出现键盘时 所有屏幕都会向上移动 Before keyboard appears 键盘出现后 工具栏不再可见 我想将键盘保留在其位置并将图像移
  • 从 Git 存储库中删除已从磁盘删除的多个文件

    我有一个 Git 存储库 已删除了四个使用中的文件rm not git rm 我的 Git 状态如下所示 deleted file1 txt deleted file2 txt deleted file3 txt deleted file4
  • Go:如何检查结构体属性是否显式设置为零值?

    type Animal struct Name string LegCount int snake Animal Name snake LegCount 0 worm Animal Name worm 问题 我怎样才能检查snake and