| 1234567891011121314151617181920212223242526272829303132333435363738 | 
							- package xreflect
 
- import (
 
- 	"encoding/json"
 
- 	"reflect"
 
- 	"strconv"
 
- 	"kpt-tmr-group/pkg/xerr"
 
- )
 
- var ErrUnkownType = xerr.New("unknown type")
 
- func SetString(target reflect.Value, val string) error {
 
- 	if target.Kind() == reflect.String {
 
- 		target.SetString(val)
 
- 		return nil
 
- 	}
 
- 	return json.Unmarshal([]byte(val), target.Addr().Interface())
 
- }
 
- func ToString(target reflect.Value) (string, error) {
 
- 	switch target.Kind() {
 
- 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
 
- 		return strconv.FormatInt(target.Int(), 10), nil
 
- 	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
 
- 		return strconv.FormatUint(target.Uint(), 10), nil
 
- 	case reflect.Float32:
 
- 		return strconv.FormatFloat(target.Float(), 'f', -1, 32), nil
 
- 	case reflect.Float64:
 
- 		return strconv.FormatFloat(target.Float(), 'f', -1, 64), nil
 
- 	case reflect.Bool:
 
- 		return strconv.FormatBool(target.Bool()), nil
 
- 	case reflect.String:
 
- 		return target.String(), nil
 
- 	default:
 
- 		return "", ErrUnkownType
 
- 	}
 
- }
 
 
  |