【问题标题】:Get [ ] interface{} after splitting a string by comma in gogo中用逗号分割字符串后获取[ ] interface{}
【发布时间】:2016-06-09 13:50:01
【问题描述】:

我有两种获取列表的方法。

  1. 通过 api - 它返回给我一个 map[string]interface{}。我感兴趣的值作为 []interface{} 存储在接口中(默认设置为接口数组的字符串数组)
  2. 通过静态字符串 - 如果 api 失败。这是一个逗号分隔的字符串。我使用了 strings.Split 函数,它会产生一个 []string

以上结果导致两种类型的数据 []interface{} 和 []string 与操作不兼容,我将不得不根据类型分别执行相同的操作。

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

这个问题有什么解决办法吗?最好的办法是什么。。

【问题讨论】:

    标签: go type-conversion


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 此外,我将数组转换为 map[string]int,键为字符串,值为 1。我将其转换为映射,以便快速检查原始数组中的某些属性。我将不得不再次调用相同的循环。有没有办法直接从字符串转换它
    猜你喜欢
    • 2020-04-05
    • 2020-08-30
    • 2019-10-25
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多