golang中[]string转[]interface{}实现

作者:袖梨 2022-06-25


在golang语法中,不应该隐藏复杂的类型操作。
如string转interface{},[]string转interface{}都是时间复杂度O(1)的操作。而[]string转[]interface{}是O(n)的操作。

注:string和[]byte除外,这是特例。
因此[]T 转 []interface{}只能自己去实现:

 strSls := []string{
  "test1",
  "test2",
 }
 
 //[]interface{}(strSls)
 //cannot convert strSls (type []string) to type []interface {}
 
 newSls := make([]interface{}, len(strSls))
 for i, v := range strSls {
  newSls[i] = v
 }
 
 fmt.Println(newSls)

相关文章

精彩推荐