在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)