go interface{}类型转换为数组或者切片

func Test_toInt64Slice(t *testing.T) {
	res, err := toInt64Slice([]int64{1})
	fmt.Println(err, res)
}
func toInt64Slice(actual interface{}) ([]int64, error) {
	var res []int64
	value := reflect.ValueOf(actual)
	if value.Kind() != reflect.Slice && value.Kind() != reflect.Array {
		return nil, errors.New("parse error")
	}
	for i := 0; i < value.Len(); i++ {
		res = append(res, value.Index(i).Interface().(int64))
	}
	return res ,nil
}

你可能感兴趣的:(Go基础语法,go,数组,切片,转换)