From a683db7107ee19da93333b4fbbf3848d684b8358 Mon Sep 17 00:00:00 2001 From: gazebo Date: Sun, 16 Sep 2018 12:58:48 +0800 Subject: [PATCH] - Interface2Slice. --- utils/typeconv.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utils/typeconv.go b/utils/typeconv.go index 49100f98..988dd512 100644 --- a/utils/typeconv.go +++ b/utils/typeconv.go @@ -124,6 +124,21 @@ func Interface2StringList(data interface{}) []string { return retVal } +func Interface2Slice(value interface{}) (retVal []interface{}) { + typeInfo := reflect.TypeOf(value) + if typeInfo.Kind() != reflect.Slice { + panic("list must be slice type!") + } + if value != nil { + valueInfo := reflect.ValueOf(value) + retVal = make([]interface{}, valueInfo.Len()) + for i := 0; i < valueInfo.Len(); i++ { + retVal[i] = valueInfo.Index(i).Interface() + } + } + return retVal +} + func Slice2MapSlice(data []interface{}) []map[string]interface{} { retVal := make([]map[string]interface{}, len(data)) for k, v := range data {