Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在go中用逗号拆分字符串后获取[]接口{}_Go_Type Conversion - Fatal编程技术网

在go中用逗号拆分字符串后获取[]接口{}

在go中用逗号拆分字符串后获取[]接口{},go,type-conversion,Go,Type Conversion,我有两种方法来获取列表 通过api-它返回一个map[string]接口{}。我感兴趣的值作为[]接口{}(字符串数组,默认设置为接口数组)存储在接口中 通过静态字符串-如果api失败。这是一个逗号分隔的字符串。我使用strings.Split函数,该函数生成一个[]字符串 上述结果导致两种类型的数据[]接口{}和[]字符串,这两种类型的数据与操作不兼容,I必须根据类型分别执行相同的操作 此外,我正在将数组转换为map[string]int,key为string,value为1。我正在将其转换为

我有两种方法来获取列表

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


    此外,我正在将数组转换为map[string]int,key为string,value为1。我正在将其转换为一个映射,以便快速检查原始数组中的某些属性


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

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

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

    使用以下代码从类型为
    []接口{}
    值创建
    映射[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,key为string,value为1。我正在将其转换为一个映射,以便快速检查原始数组中的某些属性。我将不得不再次调用相同的循环。有没有办法直接从字符串转换它