我正在尝试打印地图的类型,例如:map [int] string
func handleMap(m reflect.Value) string {
keys := m.MapKeys()
n := len(keys)
keyType := reflect.ValueOf(keys).Type().Elem().String()
valType := m.Type().Elem().String()
return fmt.Sprintf("map[%s]%s>", keyType, valType)
}
所以如果我这样做:
log.Println(handleMap(make(map[int]string)))
我想得到 "map[int]string"
但我找不到正确的电话。
尽量不要使用reflect
。但是,如果您必须使用reflect
:
reflect.Value
值具有Type()
函数,该函数返回一个reflect.Type
值。Kind()
为reflect.Map
,则这reflect.Value
是map[T1]T2
某些类型T1和T2 的type值,其中T1是键类型,T2是元素类型。因此,在使用时reflect
,我们可以像这样将片段分开:
func show(m reflect.Value) {
t := m.Type()
if t.Kind() != reflect.Map {
panic("not a map")
}
kt := t.Key()
et := t.Elem()
fmt.Printf("m = map from %s to %s\n", kt, et)
}
在Go
Playground上查看更完整的示例
。(请注意,两个映射实际上都是nil,因此没有要枚举的键和值。)
我创建了一个带有整数类型键的映射,值是字符串集。我已经用一些测试数据填充了映射,现在需要编写一个方法来打印映射的内容,例如“key: value, value, value” 我假设迭代映射,并将键分配给int变量并打印出来是如何开始的,但是我该如何打印字符串集中的值呢?
问题内容: 为什么地图打印混乱,如何使它秩序井然? 打印输出: 问题答案: 码: (其中大部分是从萨默菲尔德先生的书中偷走的) 输出:
我不确定此错误消息的含义:*错误:请求成员开始在counter.std::映射
我有这个JSON: 我想打印键值对,其中键匹配状态和选项,以及时间和它的值。我可以通过使用下面的命令打印时间和所有键值对,但不确定如何提取特定的键值对。 这将产生以下输出: 但我想要的结果是:
我正在寻找一种漂亮的方法来打印地图。 <代码>贴图。toString()给我:
我们提供您的业务地图高清图片的生成服务,每次生成高清地图,1500元起价。并根据打印的范围、详细程度、标注数量来计算实际价格,范围越大、内容越详细、标注越多,价格则越高。 以下样图生成价格为2500元:点此下载原图 (约10M,建议在wifi环境下下载) 打印的范围,添加一个区域用以标明输出的范围。 地图的详细程度,用地图左下角的比例尺数字告诉小图,如下图所示: 有的小伙伴会问,我的地图,打印出来