ホームページ  >  記事  >  バックエンド開発  >  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>

一度も設定されていないカテゴリと空のカテゴリを区別するには、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。