Golang 如何实现map嵌套

var myMap map[string] persionInfo
    myMap = make(map[string] persionInfo)
    myMap["persion1"] = persionInfo{"1", "Amiee", "Street 101"}
    myMap["persion2"] = persionInfo{"2", "Beva", "Street 102"}
    myMap["persion3"] = persionInfo{"3", "Cencey", "Street 103"}

如以下例子,现在想要实现 myMap["persion2"] 继承my["persion1"]的值,并在其基础上新增值

var myMap map[string] persionInfo
    myMap = make(map[string] persionInfo)
    myMap["persion1"] = persionInfo{"1", "Amiee", "Street 101"}
    myMap["persion2"] = myMap["persion1"] + persionInfo{"2", "Beva", "Street 102"}
    myMap["persion3"] = myMap["persion1"] + myMap["persion2"] +persionInfo{"3", "Cencey", "Street 103"}
阅读 5.8k
3 个回答

不知道你想做什么 你描述的太不清晰了

可以实现一个成员方法:
func (pi PersonInfo) Extend(newpi PersonInfo) (PersonInfo)
实现你要的功能。

package main

import "fmt"

type p struct {
    a string
    b string
    c string
}

func main() {
    m := map[string]*p{
        "p1": &p{a: "1", b: "Amiee"},
    }

    m["p2"] = new(p)
    *m["p2"] = *m["p1"]

    m["p1"].c = "St.707"
    fmt.Printf("%p: %v, %p: %v\n", m["p1"], m["p1"], m["p2"], m["p2"])
    m["p2"].c = "St.708"
    fmt.Printf("%p: %v, %p: %v\n", m["p1"], m["p1"], m["p2"], m["p2"])

}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题