Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membezakan Antara Nilai Tiada dan Kosong dalam Go Structs?
Membezakan Antara Nilai Tiada dan Kosong dalam Struktur Go
Dalam Go, sukar untuk membezakan antara nilai nol (iaitu, jangan sekali-kali set) dan nilai kosong atau kosong (seperti rentetan kosong). Perbezaan ini penting apabila berurusan dengan data daripada pangkalan data atau input pengguna.
Masalah:
Pertimbangkan struct Go berikut:
type Organisation struct { Category string Code string Name string }
Jika medan kategori tidak ditetapkan atau disimpan sebagai rentetan kosong oleh pengguna, adalah penting untuk menentukan sama ada nilai ini mewakili nilai yang hilang atau pilihan pengguna kosong.
Penyelesaian:
Satu pendekatan ialah menggunakan medan penunjuk:
type Organisation struct { Category *string Code *string Name *string }
Dengan medan penunjuk, nilai sifar mewakili medan yang tidak ditetapkan, manakala nilai bukan sifar dengan rentetan kosong menunjukkan pilihan kosong.
Pengendalian Pangkalan Data:
Dalam Go, nilai sifar untuk jenis rentetan ialah rentetan kosong. Oleh itu, adalah mustahil untuk membezakan antara medan rentetan yang tidak ditetapkan dan rentetan kosong menggunakan jenis rentetan standard. Untuk penyepaduan pangkalan data:
Contoh:
Berikut ialah contoh menggunakan sql.NullString:
<code class="go">type Organisation struct { Category sql.NullString Code string Name string } // Check if Category is set and not NULL if organisation.Category.Valid && organisation.Category.String != "" { // Category was set and has a value } else { // Category is either unset or NULL }</code>
Pendekatan ini membolehkan anda membezakan antara nilai rentetan yang tidak ditetapkan dan kosong, memastikan pengendalian data yang betul dalam operasi pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Membezakan Antara Nilai Tiada dan Kosong dalam Go Structs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!