|
@@ -127,16 +127,6 @@ func parseValue(value any, opts ...AfterParsedStrValueOption) (string, error) {
|
|
|
if opts == nil || len(opts) == 0 {
|
|
|
return parsedValue, nil
|
|
|
}
|
|
|
- case []string:
|
|
|
- if v == nil || len(v) == 0 {
|
|
|
- parsedValue = ""
|
|
|
- } else {
|
|
|
- parsedValue = strings.Join(v, ",")
|
|
|
- }
|
|
|
-
|
|
|
- if opts == nil || len(opts) == 0 {
|
|
|
- return "'" + parsedValue + "'", nil
|
|
|
- }
|
|
|
default:
|
|
|
return "", errors.New("不支持的类型")
|
|
|
}
|
|
@@ -152,3 +142,40 @@ func parseValue(value any, opts ...AfterParsedStrValueOption) (string, error) {
|
|
|
|
|
|
return parsedValue, nil
|
|
|
}
|
|
|
+
|
|
|
+func parseSliceValues(values any, opts ...AfterParsedStrValueOption) (string, error) {
|
|
|
+ sliceValue := reflect.ValueOf(values)
|
|
|
+
|
|
|
+ if !sliceValue.IsValid() {
|
|
|
+ return "", errors.New("无效值")
|
|
|
+ }
|
|
|
+
|
|
|
+ if sliceValue.Kind() == reflect.Ptr && sliceValue.IsNil() {
|
|
|
+ return "()", nil
|
|
|
+ }
|
|
|
+
|
|
|
+ if sliceValue.Kind() == reflect.Ptr {
|
|
|
+ sliceValue = sliceValue.Elem()
|
|
|
+ }
|
|
|
+
|
|
|
+ if sliceValue.Kind() != reflect.Slice {
|
|
|
+ return "", errors.New("传递的不是slice")
|
|
|
+ }
|
|
|
+
|
|
|
+ parsedValues := make([]string, 0)
|
|
|
+ for i := 0; i < sliceValue.Len(); i++ {
|
|
|
+ value := sliceValue.Index(i).Interface()
|
|
|
+ parsedValue, err := parseValue(value)
|
|
|
+ if err != nil {
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
+
|
|
|
+ parsedValues = append(parsedValues, parsedValue)
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(parsedValues) == 0 {
|
|
|
+ return "()", nil
|
|
|
+ }
|
|
|
+
|
|
|
+ return "(" + strings.Join(parsedValues, ",") + ")", nil
|
|
|
+}
|