Berbilang Peta Bersarang di Golang
Go membenarkan penciptaan peta bersarang, yang boleh berguna untuk mengatur data dalam struktur hierarki. Walau bagaimanapun, terdapat beberapa kemungkinan perangkap untuk dipertimbangkan apabila menggunakan peta bersarang.
Satu isu yang perlu diberi perhatian ialah nilai sifar peta adalah sifar. Jika anda cuba mengakses kunci yang tidak wujud dalam peta kosong, ia akan panik. Ini boleh berlaku apabila bekerja dengan berbilang peta bersarang, kerana peta dalam mungkin tidak dimulakan dengan betul.
Pertimbangkan contoh berikut:
func main() { var w = map[string]string{} var data = map[string]map[string]string{} w["w"] = "x" data["a"] = w data["b"] = w data["c"] = w fmt.Println(data) }
Kod ini memberikan rujukan peta yang sama kepada berbilang kunci dalam peta data. Semasa ini menyusun, ia mengakibatkan panik masa jalan kerana peta data["a"] masih kosong dan cuba memberikan nilai kepadanya akan mencetuskan panik.
Untuk mengelakkan isu ini, anda mesti memulakan peta dalaman sebelum menggunakannya. Ini boleh dilakukan menggunakan fungsi make atau dengan memulakan dengan literal komposit.
Berikut ialah contoh dengan make:
func main() { var data = map[string]map[string]string{} data["a"] = make(map[string]string) data["b"] = make(map[string]string) data["c"] = make(map[string]string) fmt.Println(data) }
Dan berikut ialah contoh dengan literal komposit:
func main() { var data = map[string]map[string]string{ "a": map[string]string{}, "b": map[string]string{}, "c": map[string]string{}, } fmt.Println(data) }
Contoh ini memulakan peta dalaman sebelum memberikan nilai kepada mereka, menghapuskan potensi masa jalan panik.
Ingat, adalah penting untuk memastikan semua peta bersarang dimulakan dengan betul sebelum cuba mengakses atau mengubah suainya. Dengan menangani isu yang berpotensi ini, anda boleh menggunakan peta bersarang dengan berkesan untuk menyusun data anda dalam Go.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Panik Apabila Menggunakan Berbilang Peta Bersarang dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!