Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Tidak Boleh Mengisytiharkan Peta sebagai Pemalar dan Mengubahnya dalam Go?

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-14 14:22:02346semak imbas

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"
)

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"

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!

Kenyataan:
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