Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Memulakan Go Structs Tanpa Pembina Tradisional?

Bagaimanakah Saya Boleh Memulakan Go Structs Tanpa Pembina Tradisional?

Susan Sarandon
Lepaskan: 2024-12-24 05:29:18
asal
239 orang telah melayarinya

How Can I Initialize Go Structs Without Traditional Constructors?

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

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

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

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!

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