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) }
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) }
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) }
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!