登录
首页 >  Golang >  Go问答

如何从地图界面获取/设置值?

来源:stackoverflow

时间:2024-04-24 16:03:33 263浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《如何从地图界面获取/设置值?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

这就是我正在尝试做的事情。

person := map[string]int {
    "age": 20,
}
var p interface{} = person
v := reflect.ValueOf(p)
// I want to get/set the value of age here from v e.g. v["age"]
// how can I do that

解决方案


不需要使用reflect,可以做类型断言:

person := map[string]int{
    "age": 20,
}
var p interface{} = person
age := p.(map[string]int)["age"] // get
p.(map[string]int)["something"] = 10 //set

编辑:您的问题似乎是关于您不知道映射键/值类型的情况。在这种情况下,您可以使用以下方法循环遍历地图元素:

v := reflect.valueof(p)
itr := v.maprange()
for itr.next() {
    fmt.println(itr.key(), itr.value())
}

或者,如果您需要特定元素,请使用:

v.mapindex(reflect.valueof("age")) // returns 20

此外,为了设置新值,您可以:

v.SetMapIndex(reflect.ValueOf("somekey"), reflect.ValueOf(7))

今天关于《如何从地图界面获取/设置值?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>