【发布时间】:2017-07-28 05:45:06
【问题描述】:
在 Golang 中,map 中的值可以是类型吗?例如,我如何创建一个映射 m[string]type 使其可以是这样的,
m["abc"] = int
m["def"] = string
m["ghi"] = structtype ( some structure of type structtype)
我需要这样的映射,因为我有一个函数,它有一个字符串参数,并且根据该字符串参数,该函数创建一个特定类型的变量并执行一些操作。因此,如果我有一个将字符串映射到类型的映射,该函数可以使用字符串参数作为键检查该映射,以找出它需要创建的变量类型。
【问题讨论】:
-
类型不是值,但您可以使用类型的零值,或
reflect.Type值。 -
您需要非常熟悉
reflect包。 -
RayfenWindspear 和 @JimB 所以地图应该定义为 m[string]interface{} ?
-
@user1851006
map[string]reflect.Type我发誓我以前回答过这个问题,但我似乎找不到......
标签: dictionary go