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
Susan Sarandonasal
2024-12-24 05:29:18202semak imbas

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
}

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!

Kenyataan:
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