Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Memulakan Go Structs Tanpa Pembina Tradisional?
Bolehkah Pembina Digunakan untuk Memulakan Go Structs?
Dalam Go, struct boleh dimulakan dengan nilai lalai yang wajar melalui pelbagai kaedah. Walaupun kekurangan pembina tradisional kerana sifat bukan OOP Go, terdapat teknik alternatif untuk mencapai kefungsian yang sama.
Kaedah 1: Fungsi Baharu dengan Pulangan Penunjuk
Apabila nilai sifar tidak sesuai, satu pilihan adalah untuk mencipta fungsi "NewThing" yang mengembalikan penunjuk kepada yang baru dimulakan struct:
type Thing struct { Name string Num int } func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 // Set a sensible default value return p }
Kaedah 2: Fungsi "NewThing" yang dipadatkan
Untuk struct yang lebih ringkas, kaedah yang lebih ringkas tersedia:
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Kaedah 3: Fungsi "makeThing" dengan Nilai Kembali
Jika mengembalikan penunjuk tidak diingini, fungsi itu boleh dinamakan "makeThing" dan mengembalikan nilai:
func makeThing(name string) Thing { return Thing{name, 33} }
Rujukan
Untuk butiran lanjut, rujuk bahagian "Peruntukan dengan baharu" dalam Effective Go.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Go Structs Tanpa Pembina Tradisional?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!