dengbiao 3 days ago
parent
commit
3e3c62f664
1 changed files with 29 additions and 0 deletions
  1. +29
    -0
      app/utils/convert.go

+ 29
- 0
app/utils/convert.go View File

@@ -137,10 +137,39 @@ func AnyToString(raw interface{}) string {
return i.Error()
case bool:
return strconv.FormatBool(i)
case []interface{}:
return interfaceSliceToJSONStyleString(i)
}
return fmt.Sprintf("%#v", raw)
}

func interfaceSliceToJSONStyleString(slice []interface{}) string {
var elements []string

for _, v := range slice {
switch value := v.(type) {
case string:
// 对字符串进行转义并加上双引号
elements = append(elements, fmt.Sprintf("%q", value))
case bool:
// 直接转换为字符串
elements = append(elements, fmt.Sprintf("%v", value))
case float64, float32:
// 格式化浮点数
elements = append(elements, fmt.Sprintf("%v", value))
case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:
// 格式化整数
elements = append(elements, fmt.Sprintf("%v", value))
default:
// 其他类型也尽量尝试转换为字符串
elements = append(elements, fmt.Sprintf("%v", value))
}
}

// 使用方括号包裹,并用逗号分隔各个元素
return "[" + strings.Join(elements, ", ") + "]"
}

func AnyToFloat64(raw interface{}) float64 {
switch i := raw.(type) {
case []byte:


Loading…
Cancel
Save