Mengapa Saya Tidak Boleh Mengisytiharkan Peta sebagai Pemalar dan Mengubahnya dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-14 14:22:02
asal
344 orang telah melayarinya

Why Can't I Declare a Map as a Constant and Modify It in Go?

Mengisytiharkan dan Mengubah Suai Peta sebagai Pemalar

Dalam Go, peta bukan pemalar, yang bermaksud pasangan nilai kunci mereka tidak boleh diubah suai selepas penciptaan. Percubaan untuk mengisytiharkan peta sebagai pemalar dan seterusnya mengisinya, seperti yang ditunjukkan dalam coretan di bawah, akan mengakibatkan ralat:

const (
    paths = &map[string]*map[string]string{
        "Smith": {
            "theFather": "John",
        },
    }
    paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior"
)
Salin selepas log masuk

Sebab

Pemalar mewakili nilai tidak berubah dan peta taip dalam Go tidak membenarkan pengubahsuaian pasangan nilai kunci. Spec mengehadkan pengisytiharan berterusan kepada jenis tertentu, termasuk pemalar boolean, rune, integer, titik terapung, kompleks dan rentetan.

Penyelesaian

Untuk menyelesaikan masalah ini isu, isytiharkan peta sebagai pembolehubah dan bukannya pemalar, seperti yang ditunjukkan di bawah:

var paths = map[string]*map[string]string{
    "Smith": {
        "theFather": "John",
    },
}
paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior"
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengisytiharkan Peta sebagai Pemalar dan Mengubahnya 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