Apabila bekerja dengan struct dalam Go, memulakannya dengan nilai lalai yang munasabah boleh menjadi penting untuk memastikan ia berfungsi dengan betul. Walaupun Go kekurangan pembina tradisional, terdapat beberapa kaedah yang boleh digunakan untuk mencapai objektif ini.
Kaedah Init
Kaedah init, walaupun ditakrifkan pada peringkat pakej, boleh digunakan untuk melaksanakan tugas permulaan untuk struct dalam pakej. Walau bagaimanapun, ia tidak terikat secara langsung dengan struct dan tidak digunakan semasa penciptaan struct.
Fungsi Baharu
Amalan biasa dalam Go ialah mentakrifkan fungsi Baharu yang kembalikan penunjuk yang dimulakan kepada struct. Fungsi ini membenarkan penetapan nilai lalai semasa pemulaan struct:
func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 // Sensible default value return p }
Fungsi Baharu Terpekat
Untuk struct ringkas, versi pekat bagi fungsi Baharu boleh digunakan, secara langsung mengembalikan struct yang dimulakan:
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Buat Fungsi
Buat fungsi adalah serupa dengan fungsi Baharu tetapi mengembalikan struct mengikut nilai dan bukannya penunjuk. Ini berguna apabila anda tidak memerlukan penuding kepada struct:
func makeThing(name string) Thing { return Thing{name, 33} }
Rujukan
Untuk maklumat lanjut tentang peruntukan menggunakan baharu, rujuk Go yang berkesan dokumentasi: https://go.dev/doc/effective_go#allocation
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Struktur dengan Nilai Lalai Sensible dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!