Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mengesan jika Harta Struktur Telah Ditetapkan dalam Go?
Mengesan Sifat Diubah Suai dalam Struktur
Dalam Go, menentukan sama ada sifat struct telah ditetapkan boleh menjadi mencabar. Tidak seperti bahasa lain, tiada mekanisme terbina dalam untuk menyemak nilai yang tidak dimulakan dalam struktur.
Menggunakan Penunjuk (Cadangan dyoo)
Seperti yang dinyatakan oleh dyoo, menggunakan penunjuk untuk sifat struct membolehkan anda membezakan antara nilai yang ditetapkan dan tidak ditetapkan. Jika penunjuk adalah sifar, nilai itu dianggap tidak ditetapkan.
Contoh dengan Penunjuk:
type MyStruct struct { Property *string } // ... if s1.Property != nil { // do something with this }
Menggunakan Rentetan Kosong (Respons Penyelenggara)
Jika anda lebih suka menggunakan rentetan dan bukannya penunjuk, anda boleh membandingkan nilai dengan rentetan kosong untuk menentukan sama ada ia telah ditetapkan.
Contoh dengan Rentetan:
type MyStruct struct { Property string } // ... if s1.Property != "" { // do something with this }
Dalam sampel kod yang disediakan, s1.Property mempunyai nilai bukan kosong dan akan dianggap ditetapkan, manakala s2.Hartanah kosong dan akan dianggap belum ditetapkan.
Alternatif Kaedah
Selain pendekatan yang dinyatakan, anda boleh meneroka pilihan lain seperti menggunakan refleksi atau mentakrifkan fungsi penetap anda sendiri yang menjejaki perubahan dalam nilai hartanah. Walau bagaimanapun, kaedah ini mungkin memerlukan kod dan kerumitan tambahan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan jika Harta Struktur Telah Ditetapkan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!