ホームページ > バックエンド開発 > Golang > Go 構造体で Null 許容時間値をエレガントに処理するにはどうすればよいですか?

Go 構造体で Null 許容時間値をエレガントに処理するにはどうすればよいですか?

DDD
リリース: 2024-12-18 20:33:14
オリジナル
792 人が閲覧しました

How Can I Elegantly Handle Nullable Time Values in Go Structs?

Go 構造体での Null 許容時刻値の処理

Go では、データベースからの Null 許容日時値を扱うとき、開発者は有効な日時値と有効な日時値の間の区別を処理するという課題に直面することがよくあります。時間と null 値。 NULL 値を許可する日付を表す構造体フィールドを time.Time へのポインターとして宣言して、nil 値を許可することができます。ただし、これには、コードで有効な時刻の存在と nil 値の違いを明示的にチェックする必要があります。

Go 構造体で null 許容時刻値を処理するための、よりエレガントで簡潔なアプローチはありますか?

データベース対応の 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 からの標準ライブラリのサポート

Go バージョン 1.13 以降では、標準ライブラリが導入されました。 sql.NullTime。pq.NullTime と同様の機能を提供します。同じ Time フィールドと Valid フィールドに加えて、データベース操作用の Scan メソッドと Value メソッドも提供します。

pq.NullTime や sql.NullTime などのデータベース対応の null 許容時刻型を使用することで、開発者はよりクリーンで慣用的な Go を作成できます。データベースからの null 許容日時値を操作する場合のコード。

以上がGo 構造体で Null 許容時間値をエレガントに処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート