猿问

如何将 []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并寻找其他方法,但似乎没有人能够转换它。


鸿蒙传说
浏览 219回答 1
1回答

qq_花开花谢_0

使用 for 循环将值字符串分配给切片:mappedToSlice := reflect.ValueOf(newMap).MapKeys()convertToSliceString := make([]string, len(mappedToSlice))for i, v := range mappedToSlice {    convertToSliceString[i] = v.Interface().(string)}
随时随地看视频慕课网APP

相关分类

Go
我要回答