在go

时间:2016-06-09 13:50:02

标签: go type-conversion

我有两种获取清单的方法。

  1. via api - 返回一个map [string] interface {}。我感兴趣的值存储在接口as [] interface {}(默认情况下设置为接口数组的字符串数组)
  2. 通过静态字符串 - 如果api失败。这是一个逗号分隔的字符串。我使用strings.Split函数导致[]字符串
  3. 以上结果导致两种类型的数据[] interface {}和[] string,这些操作与我必须根据类型分别执行相同操作的操作不兼容。

    此外,我将数组转换为map [string] int,键为字符串,值为1.我将其转换为地图,以便快速检查原始数组中的某些属性

    问题是否有解决办法,最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

使用以下代码从字符串map[string]int中的逗号分隔值创建s

m := make(map[string]int)
for _, p := range strings.Split(s, ",") {
   m[p] = 1
}

使用以下代码从[{1}} map[string]int values创建[]interface{}

m := make(map[string]int)
for _, v := range values {
   s, ok := v.(string)
   if !ok {
      // not a string, handle error
   }
   m[s] = 1
}