美文网首页
golang []interface

golang []interface

作者: hehehehe | 来源:发表于2022-02-24 17:04 被阅读0次
    • 空接口 interface{} 可以存储任何类型的数据
    • 但是在和slice以及map配合时 ,要注意
      []interface{} 或者 map[string]interface{}
      可能会犯这样的错误 cannot use (type []string) as type []interface {}
      不能将[]T 转成 []interface , 也不能将 map[string]T 转成 map[string]interface{}

    Go语言规范不允许这样做,因为两种类型在内存中没有相同的表现形式。
    需要单独定义[]interface{} map[string]interface{}
    把想转换的元素复制一遍到上面的类型里

    
    func bbb(a[]interface{})  {
        fmt.Println(a)
    }
    
    params2 := []string{"a", "b"}
    var interfaceSlice []interface{} = make([]interface{}, len(params2))
    for i, d := range params2 {
        interfaceSlice[i] = d
    }
    bbb(interfaceSlice)
    
    

    相关文章

      网友评论

          本文标题:golang []interface

          本文链接:https://www.haomeiwen.com/subject/idazlrtx.html