Memahami Sekatan Malar dalam Go
Dalam Go, penggunaan pemalar memastikan nilai kekal tidak berubah sepanjang program. Ketidakbolehubahan ini meluas kepada struktur data teras termasuk peta. Apabila mentakrifkan peta malar, seperti yang dilihat dalam coretan kod di bawah, ia menimbulkan ralat pengkompil:
const ( paths = &map[string]*map[string]string { Smith: { "theFather": "John", }, } paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior" )
Mengapa Ralat Pengkompil?
Ralat pengkompil berpunca daripada sifat asas pemalar. Pemalar dijangka kekal tidak berubah, dan percubaan untuk mengubah suainya dibenderakan sebagai ralat. Go mematuhi prinsip ini dengan tegas, tidak seperti beberapa bahasa lain yang membenarkan pengubahsuaian berterusan.
Penghadan Pemalar Peta
Peta ialah struktur data dinamik dalam Go, membenarkan nilai kunci pasangan untuk ditambah atau dialih keluar selepas penciptaannya. Sifat dinamik ini bercanggah dengan ciri pemalar yang tidak berubah. Oleh itu, Go tidak membenarkan pengisytiharan peta malar.
Jenis Pemalar yang Dibenarkan
Spesifikasi Go mentakrifkan jenis berikut sebagai pemalar yang sah: boolean, rune, integer, titik terapung, kompleks, dan rentetan.
Penyelesaian
Untuk menggunakan peta dalam konteks malar, penyelesaian adalah untuk mentakrifkan peta sebagai pembolehubah dan bukannya pemalar. Ini membolehkan kandungan peta diubah suai walaupun ia digunakan dalam pengisytiharan berterusan.
Atas ialah kandungan terperinci Mengapa Saya Tidak Dapat Menentukan Peta Malar dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!