Go で構造体を操作する場合、一度も設定されていない値と空の値を区別することが重要になる場合があります。
次の構造体を考えてみましょう:
<code class="go">type Organisation struct { Category string Code string Name string }</code>
一度も設定されていないカテゴリと空のカテゴリを区別するには、1 つのアプローチとして次のような方法があります。文字列へのポインタ:
<code class="go">type Organisation struct { Category *string Code *string Name *string }</code>
ただし、Go の文字列のゼロ値は空の文字列です。つまり、2 つのケースを区別することはできません。
データベースを扱う場合、 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 中国語 Web サイトの他の関連記事を参照してください。