func InterfaceToSliceOfInterfaces()

in internal/llreflect/llreflect.go [46:68]


func InterfaceToSliceOfInterfaces(o interface{}) []interface{} {
	if reflect.TypeOf(o).Kind() != reflect.Slice {
		o = []interface{}{o}
	}

	rv := reflect.ValueOf(o)
	converted := make([]interface{}, rv.Len())
	for i := 0; i < rv.Len(); i++ {
		var indexV = rv.Index(i)
		var convertedValue interface{}
		if indexV.Type().Kind() == reflect.Interface {
			if !indexV.IsNil() {
				convertedValue = indexV.Interface().(interface{})
			} else {
				convertedValue = nil
			}
		} else {
			convertedValue = indexV.Interface().(interface{})
		}
		converted[i] = convertedValue
	}
	return converted
}