Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Memulakan Struktur Bersarang dengan Cekap dalam Go?

Bagaimanakah Saya Boleh Memulakan Struktur Bersarang dengan Cekap dalam Go?

DDD
Lepaskan: 2024-12-10 21:51:11
asal
481 orang telah melayarinya

How Can I Efficiently Initialize Nested Structs in Go?

Memulakan Struktur Bersarang dalam Go: Meneroka Permulaan Tersurat

Apabila berurusan dengan struktur data yang kompleks, memulakan struct bersarang berbilang peringkat boleh menjadi satu cabaran dalam Go. Artikel ini menangani isu biasa yang dihadapi semasa cuba memulakan struct tersebut, menawarkan penyelesaian dengan memanfaatkan jenis struct bernama.

Isunya

Dalam contoh yang disediakan, percubaan dibuat untuk memulakan struct bersarang dengan jenis dalaman tanpa nama menggunakan literal komposit. Walau bagaimanapun, dalam Go, ini hanya boleh dilakukan jika definisi struct diulang untuk setiap lapisan sarang. Ini boleh menyusahkan dan berulang.

Penyelesaian: Menggunakan Jenis Struktur Dinamakan

Untuk memudahkan proses pemulaan, kami boleh memperkenalkan jenis struct bernama untuk setiap peringkat sarang. Ini membolehkan kami menggunakan literal komposit untuk memulakan jenis yang dinamakan ini, yang kemudiannya boleh digunakan untuk membina struktur utama.

Sampel Kod

Pertimbangkan kod dikemas kini berikut:

type domain struct {
    id string
}

type user struct {
    name     string
    domain   domain
    password string
}

type password struct {
    user user
}

type identity struct {
    methods  []string
    password password
}

type auth struct {
    identity identity
}

type tokenRequest struct {
    auth auth
}

func main() {
    req := &tokenRequest{
        auth: auth{
            identity: identity{
                methods: []string{"password"},
                password: password{
                    user: user{
                        name: os.Username,
                        domain: domain{
                            id: "default",
                        },
                        password: os.Password,
                    },
                },
            },
        },
    }

    fmt.Printf("%+v\n", req)
}
Salin selepas log masuk

Dengan mentakrifkan jenis struct yang dinamakan dan memulakannya menggunakan literal komposit, kita boleh membina kompleks dengan mudah struct bersarang tanpa memerlukan definisi struct perantaraan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Struktur Bersarang dengan Cekap 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan