首頁 >後端開發 >Golang >Golang Map 介面中的值如何變化

Golang Map 介面中的值如何變化

WBOY
WBOY轉載
2024-02-09 21:00:19952瀏覽

Golang Map 接口中的值如何变化

Golang Map 介面中的值如何變化?這是一個讓很多Golang開發者困惑的問題。在Go語言中,map是一種非常重要的資料結構,它以鍵值對的形式儲存資料。然而,在使用map時,我們需要注意其中的一些細節,特別是在處理值的變化時。那麼,讓我們來詳細了解一下在Golang的Map介面中,數值是如何變化的吧。

問題內容

這是程式碼庫 - https://go.dev/play/p/bedouz9qhag

輸出 -

map[something:map[acm:34.12 age:12 dune:dune]]

改變 t 變數的值對 x 有何影響?

package main

import "fmt"

    func main() {
        x: = make(map[string] interface {}, 10)
        x["something"] = map[string] interface {} {
            "dune": "dune", "age": 12
        }
    
        t: = x["something"].(map[string] interface {})
        t["ACM"] = 34.12
       

 fmt.Println(x)
}

解決方法

映射類型是參考類型,如指標或切片,

所以這一行

t := x["something"].(map[string]interface{}) t["ACM"] = 34.12 fmt.Println(x) }

只是為您在 x 變數中建立的現有地圖建立 alias 的淺表副本,因此它們指向您建立的原始地圖所在的相同記憶體位址。

請參閱參考 -https://www.php.cn/link/0bf31d0d702fcac8c8e07912f3347c31

以上是Golang Map 介面中的值如何變化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除