35 lines
756 B
Go
35 lines
756 B
Go
package util
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
//func StructToMap(obj interface{}) map[string]any {
|
|
// objValue := reflect.ValueOf(obj)
|
|
// objType := objValue.Type()
|
|
//
|
|
// data := make(map[string]any)
|
|
// for i := 0; i < objValue.NumField(); i++ {
|
|
// field := objValue.Field(i)
|
|
// key := objType.Field(i).Name
|
|
// value := field.Interface()
|
|
// data[key] = value
|
|
// }
|
|
// return data
|
|
//}
|
|
|
|
func ToString(value any) (string, error) {
|
|
switch val := value.(type) {
|
|
case string:
|
|
return val, nil
|
|
case bool, int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64:
|
|
return fmt.Sprint(val), nil
|
|
case []byte:
|
|
return string(val), nil
|
|
case fmt.Stringer:
|
|
return val.String(), nil
|
|
}
|
|
return "", errors.New("无法转为string")
|
|
}
|