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