首頁  >  文章  >  後端開發  >  為什麼我不能將 Map 宣告為常數並在 Go 中修改它?

為什麼我不能將 Map 宣告為常數並在 Go 中修改它?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-14 14:22:02346瀏覽

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

將映射宣告並修改為常數

在 Go 中,對映不是常數,這表示它們的鍵值對在建立後無法修改。嘗試將映射聲明為常數並隨後填充它(如下面的程式碼片段所示)將導致錯誤:

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

原因

常數表示不可變值,並且映射Go 中的type 不允許修改鍵值對。規範將常數宣告限制為特定類型,包括布林、符文、整數、浮點、複數和字串常數。

解決方法

解決此問題問題,將map宣告為變數而不是常數,如下所示:

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

以上是為什麼我不能將 Map 宣告為常數並在 Go 中修改它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn