Rumah > pembangunan bahagian belakang > Golang > Mengapa Saya Tidak Dapat Menentukan Peta Malar dalam Go?

Mengapa Saya Tidak Dapat Menentukan Peta Malar dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-15 10:04:02
asal
698 orang telah melayarinya

Why Can't I Define Constant Maps in Go?

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"
)
Salin selepas log masuk

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!

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