Go では、データベースからの Null 許容日時値を扱うとき、開発者は有効な日時値と有効な日時値の間の区別を処理するという課題に直面することがよくあります。時間と null 値。 NULL 値を許可する日付を表す構造体フィールドを time.Time へのポインターとして宣言して、nil 値を許可することができます。ただし、これには、コードで有効な時刻の存在と nil 値の違いを明示的にチェックする必要があります。
Go 構造体で null 許容時刻値を処理するための、よりエレガントで簡潔なアプローチはありますか?
この問題に対処するには、回答では pq.NullTime 型を利用することを提案しています。 PostgreSQL 用の人気のある github.com/jackc/pgx/v4 ライブラリ。この型は、Null 許容時間値の拡張表現を提供し、時間値が有効か nil かを示す Valid ブール値フラグを備えています。
type NullTime struct { Time time.Time Valid bool }
pq.NullTime を使用すると、Null 許容時間値へのアクセスと操作がさらに容易になります。便利。データベースからのスキャンとデータベースへのバッファリングは、それぞれ Scan メソッドと Value メソッドによってシームレスに処理されます。
Go バージョン 1.13 以降では、標準ライブラリが導入されました。 sql.NullTime。pq.NullTime と同様の機能を提供します。同じ Time フィールドと Valid フィールドに加えて、データベース操作用の Scan メソッドと Value メソッドも提供します。
pq.NullTime や sql.NullTime などのデータベース対応の null 許容時刻型を使用することで、開発者はよりクリーンで慣用的な Go を作成できます。データベースからの null 許容日時値を操作する場合のコード。
以上がGo 構造体で Null 許容時間値をエレガントに処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。