为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 接口和铸造

Golang 接口和铸造

Go
慕盖茨4494581 2022-01-17 17:42:55
我有以下代码:   func returnTheMap() map[string][]string{        myThing := getSomeValue()    }getSomeValue() 返回某种类型的东西 map[string]interface{}但它始终在内部是一个map[string][]string.设置myThing等于相同getSomeValue()但类型的最佳方法是什么map[string][]string?我可以像这样制作一个新对象:newMap := make(map[string][]string)// cardTypeList is of type map[string]interface {}, must convert to map[string][]stringfor k, v := range myThing {    newMap[k] = v.([]string)}但是有什么方法可以就地执行此操作,还是有任何首选方法可以执行此操作?
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

根据Go FAQ,您不能直接更改切片的类型。

因此,您的解决方案似乎是首选方式。


查看完整回答
反对 回复 2022-01-17
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

getSomeValue()的功能是?如果是这样,我会将返回类型更改为map[string][]string而不是map[string][]interface.

如果不是这种情况,我会创建一些帮助程序进行检查以确保类型设置符合您的需求。我在操场上有一个例子

https://play.golang.org/p/9OPgXGXADY


查看完整回答
反对 回复 2022-01-17
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信