Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menggunakan Peta Bersarang dengan Selamat dalam Go dan Mengelakkan Panik Masa Jalanan?

Bagaimanakah Saya Boleh Menggunakan Peta Bersarang dengan Selamat dalam Go dan Mengelakkan Panik Masa Jalanan?

Linda Hamilton
Lepaskan: 2024-12-02 17:27:10
asal
974 orang telah melayarinya

How Can I Safely Use Nested Maps in Go and Avoid Runtime Panics?

Peta Bersarang dalam Go: Perangkap dan Penyelesaian Biasa

Dalam Go, nilai sifar untuk peta ialah sifar, bermakna peta yang tidak diinisialisasi. Menyimpan nilai dalam peta sifar mengakibatkan panik masa jalan. Ini boleh dilihat dalam contoh berikut:

func main() {
    var data = map[string]map[string]string{}
    data["a"]["w"] = "x"
    println(data)
}
Salin selepas log masuk

Kod ini akan panik semasa masa jalan dengan ralat "tugasan untuk masuk dalam peta kosong." Untuk mengelakkan isu ini, mulakan peta secara eksplisit sebelum memberikan nilai kepadanya, seperti yang ditunjukkan di bawah:

func main() {
    var data = map[string]map[string]string{}
    data["a"] = make(map[string]string)
    data["a"]["w"] = "x"
    println(data)
}
Salin selepas log masuk

Dalam contoh ini, make(map[string]string) mencipta peta kosong baharu jenis map[string ]rentetan.

Cara lain untuk memulakan peta bersarang ialah menggunakan literal komposit:

func main() {
    var data = map[string]map[string]string{
        "a": map[string]string{},
        "b": map[string]string{},
        "c": map[string]string{},
    }

    data["a"]["w"] = "x"
    println(data)
}
Salin selepas log masuk

Kedua-dua kaedah akan memulakan peta bersarang dengan betul dan membenarkan nilai disimpan tanpa menyebabkan panik masa jalan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Peta Bersarang dengan Selamat dalam Go dan Mengelakkan Panik Masa Jalanan?. 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