首页 >后端开发 >Golang >Golang Map 接口中的值如何变化

Golang Map 接口中的值如何变化

WBOY
WBOY转载
2024-02-09 21:00:19967浏览

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删除