Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Memulakan Struktur dengan Nilai Lalai Sensible dalam Go?

Bagaimanakah Saya Boleh Memulakan Struktur dengan Nilai Lalai Sensible dalam Go?

Susan Sarandon
Lepaskan: 2024-12-26 15:04:09
asal
516 orang telah melayarinya

How Can I Initialize Structs with Sensible Default Values in Go?

Pembina dalam Go: Panduan Nilai Lalai Sensible

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
}
Salin selepas log masuk

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}
}
Salin selepas log masuk

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}
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan