当前位置: 首页 > 面试题库 >

将值类型转换为Golang中的Map?

鞠嘉志
2023-03-14
问题内容

我从“ reflect”包中的函数调用获取此返回值:

< map[string]string Value >

想知道我是否可以在返回值内访问实际地图,如果可以,怎么办?

编辑:

因此,这是我在进行返回Value对象的调用的地方。它返回`[< map[string]string Value

]到我抓取该数组中的第一个对象的位置。但是,我不确定如何转换[< map[string]string Value >]`为常规地图。

view_args := reflect.ValueOf(&controller_ref).MethodByName(action_name).Call(in)

问题答案:

使用方法Value可以将大多数反射对象转换回一个interface{}值。.Interface()

获取此值后,可以将其断言回所需的地图。示例(播放):

m := map[string]int{"foo": 1, "bar": 3}
v := reflect.ValueOf(m)
i := v.Interface()
a := i.(map[string]int)

println(a["foo"]) // 1

在上面的示例中,m是您的原始地图,并且v是反射值。该方法i获取的接口值Interface被断言为类型,map[string]int并且该值在最后一行中按原样使用。



 类似资料:
  • 所以,我有一个值类型: 我目前正在研究的挑战是如何将转换为对象。有没有一种现有的方法可以做到这一点? 等效命令的服务器响应 PS:开始学习Redis,希望这种映射可能已经解决了。是的,至少不是找客户变更作为答案。

  • 问题内容: 在进行中,是否可以通过某种方式动态地转换变量? 例如,如果简单的转换将是: 如果我事先不知道年龄是整数怎么办?一种简单的书写方式是 有没有办法实现这样的目标?反射包提供了一些在运行时确定或强制转换类型的方法-但我找不到像上述提到的东西(适用于所有类型的通用方案)。 问题答案: 不,你不能。Go是一种静态类型的语言。变量的类型在编译时确定。 如果要动态确定的,可以使用类型切换:

  • 问题内容: 我有代表特定灰度图像的特定np.array`数据。我需要使用SimpleBlobDetector(),不幸的是,该SimpleBlobDetector()仅接受8位图像,因此我需要转换此图像,显然会有质量损失。 我已经尝试过: 但是 cv2.imshow 不能提供预期的图像,但是会产生奇怪的失真… 最后,我只需要将np.float64转换为np.uint8即可缩放所有值,并截断其余所有

  • 问题内容: 我在SO的某处找到了此字符串扩展名,它使我可以将html代码转换为属性字符串: 在Swift 3中工作正常,但在Swift 4中,Xcode抱怨: 无法将类型“ NSAttributedString.DocumentAttributeKey”的值转换为预期的字典密钥类型“ NSAttributedString.DocumentReadingOptionKey” 我该如何解决? 问题答案

  • 问题内容: 我试图将视图控制器转换为详细视图控制器,但不能。我正在使用Core Data(第一次)。错误发生在prepareForSegue方法中,显示为:“无法将类型’UIViewController’(0x1b81cdc)的值强制转换为’Patternz.PatternDetailViewController’(0x32488)。(lldb)” 希望能解释为什么它不起作用。这是文件。 View