本文共 1083 字,大约阅读时间需要 3 分钟。
通过xml.Unmarshal获得一个[]Province 然后想把它插到mongodb中,使用的是mgo driver。 那么怎样将[]Province切片转为[]interface{}切片呢?
法1.
c := session.DB(database).C("Provinces") var provinces []Province var docs []interface{} ... for _,v := range provinces{ docs = append(docs,v) } c.Insert(docs...)
法2.
package mainimport ( "fmt" "reflect")type a struct { CreateTime int Name string Content string}func main() { arr1 := []a{ a{Name: "no1", CreateTime: 1, Content: "hello1"}, a{Name: "no2", CreateTime: 2, Content: "hello2"}, a{Name: "no3", CreateTime: 3, Content: "hello3"}, a{Name: "no4", CreateTime: 4, Content: "hello3"}, } fmt.Println(arr1) arr2 := ToInterfaceArr(arr1) fmt.Printf("%T\n", arr2) fmt.Println(arr2)}func ToInterfaceArr(arr interface{}) []interface{} { if reflect.TypeOf(arr).Kind() != reflect.Slice { return nil } arrValue := reflect.ValueOf(arr) retArr := make([]interface{}, arrValue.Len()) for k := 0; k < arrValue.Len(); k++ { retArr[k] = arrValue.Index(k).Interface() } return retArr}
转载地址:http://zofob.baihongyu.com/