使用反射在Go中创建地图

TTKDroid:

我只是想在Golang中编写一个像jsoncpp这样使用起来很愉快的JSON阅读器包装。是否可以在Golang中创建具有动态类型的地图?

例如:

package main

import  "reflect"

func main() {
    i := 1                       // type int
    myType := reflect.TypeOf(i)  // type Type
    a := make(map[string]myType) // make a map of Type
    a["KEY"] = i                 // Assign an int to the map
}

我在做梦吗?

有人会说“这就是Go具有这种类型的原因interface{}”,但是,我不想做这样的事情:

myMap["key"].(map[string]string)["subKey1"].([]map[string]interface)["subKey2"].(int)

我想做这样的事情:

myMap["key"]["subKey1"][0]["subKey2"]

也许一个好的灵魂以前已经编码过这样的包装器,但是我在任何地方都找不到

阿德里安:

这是如何创建动态地图的示例。

package main

import (
    "reflect"
    "fmt"
)

func main() {

    var key = "key1"
    var value = 123

    var keyType = reflect.TypeOf(key)
    var valueType = reflect.TypeOf(value)
    var aMapType = reflect.MapOf(keyType, valueType)
    aMap := reflect.MakeMapWithSize(aMapType, 0)
    aMap.SetMapIndex(reflect.ValueOf(key), reflect.ValueOf(value))
    fmt.Printf("%T:  %v\n", aMap.Interface(), aMap.Interface())

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

使用反射在Java中创建通用的参数化类

来自分类Dev

如何使用反射在Golang中创建和设置基本体

来自分类Dev

使用空值创建地图

来自分类Dev

如何使用反射在Go中查找空结构值?

来自分类Dev

如何在Go中创建地图[[16] byte] []字符串?

来自分类Dev

在XQuery中创建地图

来自分类Dev

使用Java Streams从地图列表中拉出密钥,并创建地图地图

来自分类Dev

从地图创建地图

来自分类Dev

在Clojure中创建地图条目

来自分类Dev

谁在BPF中创建地图

来自分类Dev

使用React使用AmMaps创建地图

来自分类Dev

在Groovy中使用CollectEntries创建地图

来自分类Dev

使用反射在C#中创建菜单

来自分类Dev

在配置文件中创建地图

来自分类Dev

Kotlin:使用索引从列表创建地图

来自分类Dev

使用列表循环XML创建地图

来自分类Dev

如何使用反射在动态对象上创建属性

来自分类Dev

使用反射在运行时创建类

来自分类Dev

从Scala中的元组创建地图

来自分类Dev

无法创建地图

来自分类Dev

使用反射在Java中动态创建对象

来自分类Dev

如何使用java-streams从列表中创建地图?

来自分类Dev

从Clojure中的var创建地图

来自分类Dev

使用 JSON 创建地图

来自分类Dev

在 groovy 中创建地图

来自分类Dev

如何使用数据框创建地图?

来自分类Dev

在 mapStore 中动态创建地图

来自分类Dev

如何在 Java 中创建地图?

来自分类Dev

js使用反射在父类方法中创建子类