Rumah > pembangunan bahagian belakang > Golang > Cara Terbaik Mengendalikan Nilai Masa Nullable dalam Go Structs?

Cara Terbaik Mengendalikan Nilai Masa Nullable dalam Go Structs?

Susan Sarandon
Lepaskan: 2024-12-31 12:11:12
asal
396 orang telah melayarinya

How to Best Handle Nullable Time Values in Go Structs?

Mengendalikan Nilai Masa Nullable dengan Structs in Go

Apabila bekerja dengan struktur data yang mungkin mengandungi nilai masa nullable, adalah penting untuk memastikan pengendalian yang betul daripada nilai-nilai ini. Pertimbangkan struct berikut:

type Reminder struct {
    Id         int
    CreatedAt  time.Time
    RemindedAt *time.Time
    SenderId   int
    ReceiverId int
}
Salin selepas log masuk

Di sini, medan RemindedAt diisytiharkan sebagai penunjuk kepada masa. Masa, kerana ia mungkin menjadi batal. Walau bagaimanapun, perbezaan ini memerlukan kod untuk mengendalikan perbezaan antara CreatedAt dan RemindedAt.

Untuk menangani perkara ini, Go menyediakan beberapa pendekatan untuk mengendalikan nilai masa nullable secara elegan:

Menggunakan pq.NullTime

Pakej pq daripada pemacu PostgreSQL Go menawarkan pq.NullTime taip. Ia terdiri daripada masa.Nilai masa dan bendera boolean sah yang menunjukkan sama ada masa itu sah (bukan NULL).

import "github.com/lib/pq"

type Reminder struct {
    Id         int
    CreatedAt  time.Time
    RemindedAt pq.NullTime
    SenderId   int
    ReceiverId int
}
Salin selepas log masuk

Dalam kes ini, RemindedAt ialah nilai pq.NullTime dan kod itu boleh menyemak benderanya Sah untuk menentukan sama ada masa ditetapkan.

Menggunakan sql.NullTime (Go 1.13 dan ke atas)

Bermula dengan Go 1.13, perpustakaan standard memperkenalkan jenis sql.NullTime, yang mempunyai tujuan yang sama dengan pq.NullTime.

import "database/sql"

type Reminder struct {
    Id         int
    CreatedAt  time.Time
    RemindedAt sql.NullTime
    SenderId   int
    ReceiverId int
}
Salin selepas log masuk

Kedua-dua pq.NullTime dan sql.NullTime melaksanakan antara muka yang diperlukan untuk menyokong pengimbasan pangkalan data dan pengikatan parameter, menjadikannya mudah digunakan dengan pangkalan data operasi.

Atas ialah kandungan terperinci Cara Terbaik Mengendalikan Nilai Masa Nullable dalam Go Structs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan