首页 > 后端开发 > Golang > 如何正确区分 Go 中的未设置值和空值?

如何正确区分 Go 中的未设置值和空值?

Barbara Streisand
发布: 2024-10-25 05:26:02
原创
521 人浏览过

How to Distinguish Properly Between Not Set vs. Empty Values in Go?

正确区分未设置和空值

在 Go 中使用结构体时,区分从未设置过的值和那些已设置过的值至关重要只是空的,例如空字符串。

考虑以下结构:

<code class="go">type Organisation struct {
    Category string
    Code     string
    Name     string
}</code>
登录后复制

要区分从未设置的类别和空白的类别,一种方法可能是使用指向字符串的指针:

<code class="go">type Organisation struct {
    Category *string
    Code     *string
    Name     *string
}</code>
登录后复制

但是,Go 中字符串的零值是空字符串,这意味着无法区分这两种情况。

在处理数据库时,区分 NULL 和空字符串很重要。为此,database/sql 包提供了 sql.NullString 类型:

<code class="go">type NullString struct {
        String string
        Valid  bool // Valid is true if String is not NULL
}</code>
登录后复制

通过扫描此类型并将其用作查询参数,database/sql 包可以为您管理 NULL 状态,有效地区分未设置值和空值。

以上是如何正确区分 Go 中的未设置值和空值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板