登录
首页 >  Golang >  Go问答

将reflect.Value()转为String的方法是什么?

来源:stackoverflow

时间:2024-02-22 10:18:19 281浏览 收藏

你在学习Golang相关的知识吗?本文《将reflect.Value()转为String的方法是什么?》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我正在尝试将我的地图键映射到切片中。我发现这个解决方案似乎效果很好。

func main() {
  newMap := map[string]bool{
    "a": true,
    "b": true,
    "c": true,
  }

  mappedToSlice := reflect.ValueOf(newMap).MapKeys()

  var convertToSliceString []string
  _ = convertToSliceString
}

这个 reflect.valueof(newmap).mapkeys() 似乎正在将键映射到切片。但是,问题是它返回一个类型为 []reflect.value 的值。同时,我想将其存储在 []string 类型(或任何其他切片类型)中,就像 converttoslicestring 变量一样。

有什么办法吗?我尝试过使用 interface 并寻找其他方法,但似乎没有人能够转换它。


正确答案


使用 for 循环将值字符串分配给切片:

mappedToSlice := reflect.ValueOf(newMap).MapKeys()
convertToSliceString := make([]string, len(mappedToSlice))
for i, v := range mappedToSlice {
    convertToSliceString[i] = v.Interface().(string)
}

终于介绍完啦!小伙伴们,这篇关于《将reflect.Value()转为String的方法是什么?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>