Menentukan Penyerahan Hak Harta dalam Struktur
Banyak senario dalam pengaturcaraan melibatkan kerja dengan struktur dan sifatnya. Satu persoalan biasa yang timbul ialah bagaimana untuk menentukan sama ada harta tertentu dalam struktur telah diberikan nilai. Artikel ini akan meneroka penyelesaian kepada masalah ini.
Dalam Go, struktur ialah jenis nilai, yang bermaksud bahawa memberikan nilai baharu pada sifat struktur menghasilkan salinan baharu struktur. Tingkah laku ini boleh merumitkan menyemak sama ada sesuatu sifat telah ditetapkan.
Seperti yang dicadangkan oleh dyoo dalam jawapan yang disediakan, satu pendekatan ialah menggunakan nilai nil. Jika harta itu adalah penunjuk, anda boleh menyemak sama ada sifar untuk menentukan sama ada harta itu telah ditetapkan. Walau bagaimanapun, pendekatan ini tidak boleh digunakan jika sifat itu bukan penunjuk.
Sebagai alternatif, anda boleh membandingkan nilai sifat dengan nilai lalai, seperti rentetan kosong. Contoh berikut menunjukkan pendekatan ini:
package main import "fmt" type MyStruct struct { Property string } func main() { s1 := MyStruct{ Property: "hey", } s2 := MyStruct{} if s1.Property != "" { fmt.Println("s1.Property has been set") } if s2.Property == "" { fmt.Println("s2.Property has not been set") } }
Dalam contoh ini, jika medan Harta s1 tidak kosong, kod mencetak bahawa ia telah ditetapkan. Sebaliknya, jika medan Harta s2 kosong, kod mencetak bahawa ia belum ditetapkan.
Pendekatan ini membolehkan anda menentukan sama ada harta struct telah diberikan nilai, tidak kira sama ada harta itu adalah penunjuk atau tidak. Dengan membandingkan nilai harta dengan nilai lalai, anda boleh menyemak tugasan dengan berkesan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan sama ada Harta Struktur Telah Diberikan Nilai dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!