首页 > 后端开发 > Golang > 正文

如何检查 Go 模板中空类型的有效字段?

Mary-Kate Olsen
发布: 2024-10-27 04:45:02
原创
596 人浏览过

How to Check for Valid Fields in Go Templates with Null Types?

Go 模板中的有效字段测试

在 Go 的 database/sql 包中,Null 类型提供了一种表示可为空的数据库值的机制。在模板表达式中确定结构体中的字段是否为 null(Valid 为 false)可能具有挑战性。

要打印 SQL 字段的值,通常使用 .Value 属性。但是,当将字段的值与另一个值进行比较时,如果该字段为空,则可能会出现问题。直接测试 nil(例如,如果 $.MyStruct.MyField == nil)将不起作用,因为字段不是 nil,而是空 Null 结构。

Go 模板中的 and 函数会评估其所有参数,甚至如果结果已经确定。因此,如果 $.MyStruct.MyField 为 null,则使用 {{ if and ($.MyStruct.MyField) (eq $.MyStruct.MyField.Value .) }} 将导致错误。

相反,请使用嵌套{{ if }} 语句选择性地计算表达式:

{{ if $.MyStruct.MyField }}
    {{ if eq $.MyStruct.MyField.Value . }}selected="selected"{{ end }}
{{ end }}
登录后复制

或者,使用 {{ with }} 语句,但请注意它会设置点,需要仔细考虑:

{{ with $.MyStruct.MyField }}
    {{ if eq .Value $e }}selected="selected"{{ end }}
{{ end }}
登录后复制

请注意,上面的示例假设值不可为空。对于 Null 类型,直接检查 Valid 字段:

{{ if $.MyStruct.MyField.Valid }}
    {{ if eq $.MyStruct.MyField.Value . }}selected="selected"{{ end }}
{{ end }}
登录后复制

以上是如何检查 Go 模板中空类型的有效字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!