Pengendalian Masa Tarikh dalam Go Structs
Dalam Go, apabila mengisi struct dengan rekod pangkalan data, pengendalian lajur datetime boleh batal boleh menjadi cabaran. Pertimbangkan struct berikut:
1 2 3 4 5 6 7 |
|
Dalam contoh ini, RemindedAt diwakili sebagai penunjuk untuk mengendalikan nilai nullable. Walau bagaimanapun, pendekatan ini memperkenalkan keperluan untuk membezakan antara nilai bukan nol dan nilai nol dalam kod, yang boleh menyusahkan.
Penyelesaian yang Diperbaiki
Untuk menangani isu ini, Pergi menawarkan jenis pq.NullTime atau sql.NullTime (dalam Go 1.13 ), yang memberikan yang lebih elegan pendekatan:
1 2 3 4 5 6 7 |
|
NullTime mentakrifkan medan berikut:
1 2 3 4 |
|
Apabila mengimbas rekod pangkalan data, medan Sah menunjukkan sama ada Masa mempunyai nilai datetime yang sah atau batal.
Penggunaan
Untuk mengimbas baris pangkalan data ke dalam Peringatan struct:
1 2 |
|
Untuk mengakses medan RemindedAt, semak medan Sah:
1 2 3 4 5 |
|
Pendekatan ini memudahkan pengendalian lajur datetime boleh batal dalam struct Go, menghapuskan keperluan untuk melaksanakan secara manual semakan batal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Lajur Masa Tarikh Boleh Null dengan Cekap dalam Go Structs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!