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

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

Barbara Streisand
Barbara Streisand原创
2024-10-25 05:26:02415浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn