5

golang map 赋值 修改 陷阱

 4 years ago
source link: https://studygolang.com/articles/32282
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

golang map 赋值 修改 陷阱

jojo1313 · 大约6小时之前 · 19 次点击 · 预计阅读时间 1 分钟 · 不到1分钟之前 开始浏览    

无法修改同一个make创建的map,只能修改不同make创建的map

func Maptest() {
    var data_list []map[string]interface{}
    subdata := make(map[string]interface{}) //第一次make
    subdata["synctag"] = ""
    data_list=append(data_list,subdata)
    subdata = make(map[string]interface{}) //第二次make
    subdata["synctag"] = "1"
    data_list=append(data_list,subdata)
    fmt.Println("==========")
    fmt.Println(data_list)
    data_list[0]["synctag"]="10.21.11.13"
    fmt.Println(data_list)

}
返回结果: 修改成功
==========
[map[synctag:] map[synctag:1]]
[map[synctag:10.21.11.13] map[synctag:1]]
func Maptest() {
    var data_list []map[string]interface{}
    subdata := make(map[string]interface{}) //make一次
    subdata["synctag"] = ""
    data_list=append(data_list,subdata)
    //subdata = make(map[string]interface{})
    subdata["synctag"] = "1"
    data_list=append(data_list,subdata)
    fmt.Println("==========")
    fmt.Println(data_list)
    data_list[0]["synctag"]="10.21.11.13"
    fmt.Println(data_list)

}
返回结果:修改失败
==========
[map[synctag:1] map[synctag:1]]
[map[synctag:10.21.11.13] map[synctag:10.21.11.13]]

有疑问加站长微信联系(非本文作者)

280

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK