Package conv 提供了基础的类型转换功能
会尽最大可能地将当前的值转换成指定类型的值。
conv.MustInt("123", 0) // 返回 123 的数值
conv.MustString(123, "")// 返回字符串 123
conv.Int("123", 0) // 返回 123 数值和 nil 的 error 接口
v := 5
conv.Value("3", reflect.ValueOf(v)) // 将 3 转换成数值,并写入 v 中。
-
func Bool(val any) (bool, error)
-
func Bytes(val any) ([]byte, error)
-
func Float32(val any) (float32, error)
-
func Float64(val any) (float64, error)
-
func Int(val any) (int, error)
-
func Int8(val any) (int8, error)
-
func Int32(val any) (int32, error)
-
func Int64(val any) (int64, error)
-
func IntOf[T Signed](val any) (T, error)
-
func Map2Obj(src any, dest any, conv FieldConvert) error
-
func MustBool(val any, def ...bool) bool
-
func MustBytes(val any, def ...[]byte) []byte
-
func MustFloat32(val any, def ...float32) float32
-
func MustFloat64(val any, def ...float64) float64
-
func MustInt(val any, def ...int) int
-
func MustInt8(val any, def ...int8) int8
-
func MustInt32(val any, def ...int32) int32
-
func MustInt64(val any, def ...int64) int64
-
func MustIntOf[T Signed](val any, def ...T) T
-
func MustSlice(val any, def ...[]any) []any
-
func MustSliceOf[T any](val any, def ...[]T) []T
-
func MustString(val any, def ...string) string
-
func MustUint(val any, def ...uint) uint
-
func MustUint8(val any, def ...uint8) uint8
-
func MustUint32(val any, def ...uint32) uint32
-
func MustUint64(val any, def ...uint64) uint64
-
func MustUintOf[T Unsigned](val any, def ...T) T
-
func Obj2Map(obj any, conv FieldConvert) (map[string]any, error)
-
func Slice(val any) ([]any, error)
-
func SliceOf[T any](val any) ([]T, error)
-
func String(val any) (string, error)
-
func Uint(val any) (uint, error)
-
func Uint8(val any) (uint8, error)
-
func Uint32(val any) (uint32, error)
-
func Uint64(val any) (uint64, error)
-
func UintOf[T Unsigned](val any) (T, error)
-
func Value(source any, target reflect.Value) error
-
type FieldConvert
-
type Signed
-
type Unsigned
This section is empty.
This section is empty.
Bool 将 val 转换成 bool 类型或是在无法转换的情况下返回 error
以下值被可以被正确转换:
123(true), 0(false),"-123"(true), "on"(true), "off"(false), "true"(true), "false"(false)
Bytes 将 val 转换成 []byte 类型或是在无法转换的情况下返回 error
Float32 将 val 转换成 float32 类型或是在无法转换的情况下返回 error
Float64 将 val 转换成 float64 类型或是在无法转换的情况下返回 error
Int 将 val 转换成 int 类型或是在无法转换的情况下返回 error
Int8 将 val 转换成 int8 类型或是在无法转换的情况下返回 error
Int32 将 val 转换成 int32 类型或是在无法转换的情况下返回 error
Int64 将 val 转换成 int64 类型或是在无法转换的情况下返回 error
Map2Obj 将 map 中的数据转换成一个结构中的数据
MustBool 将 val 转换成 bool 类型或是在无法转换的情况下返回 def 参数
MustBytes 将 val 转换成 []byte 类型或是在无法转换的情况下返回 def 参数
MustFloat32 将 val 转换成 float32 类型或是在无法转换的情况下返回 def 参数
MustFloat64 将 val 转换成 float64 类型或是在无法转换的情况下返回 def 参数
MustInt 将 val 转换成 int 类型或是在无法转换的情况下返回 def 参数
MustInt8 将 val 转换成 int8 类型或是在无法转换的情况下返回 def 参数
MustInt32 将 val 转换成 int32 类型或是在无法转换的情况下返回 def 参数
MustInt64 将 val 转换成 int64 类型或是在无法转换的情况下返回 def 参数
func MustIntOf[T Signed](val any, def ...T) T
MustIntOf 将 val 转换成 T 类型或是在无法转换的情况下返回 def 参数
MustSlice 将 val 转换成 slice 类型或是在无法转换的情况下返回 def 参数
func MustSliceOf[T any](val any, def ...[]T) []T
MustSliceOf 将 val 转换成 slice 类型或是在无法转换的情况下返回 def 参数
MustString 将 val 转换成 string 类型或是在无法转换的情况下返回 def 参数
MustUint 将 val 转换成 uint 类型或是在无法转换的情况下返回 def 参数
MustUint8 将 val 转换成 uint8 类型或是在无法转换的情况下返回 def 参数
MustUint32 将 val 转换成 uint32 类型或是在无法转换的情况下返回 def 参数
MustUint64 将 val 转换成 uint64 类型或是在无法转换的情况下返回 def 参数
MustUintOf 将 val 转换成 T 类型或是在无法转换的情况下返回 def 参数
Obj2Map 将 obj 转换成 map
NOTE: 只能转换可导出的数据。
Slice 将 val 转换成 slice 类型或是在无法转换的情况下返回 error
[]int, []interface{} 以及数组都可以转换。
[]byte("123") 返回 []interface{}{byte(49),byte(50),byte(51)}
"123" 返回 []interface{}{rune(49),rune(50),rune(51)}
SliceOf 将 val 转换成 []T
只要 val 是数组或是字符串,且其元素能转换成 T 类型即可。
String 将 val 转换成 string 类型或是在无法转换的情况下返回 error
NOTE: fmt.Stringer, ret.Error 和 encoding.TextMarshaler 都将被正确转换成字符串。
Uint 将 val 转换成 uint 类型或是在无法转换的情况下返回 error
Uint8 将 val 转换成 uint8 类型或是在无法转换的情况下返回 error
Uint32 将 val 转换成 uint32 类型或是在无法转换的情况下返回 error
Uint64 将 val 转换成 uint64 类型或是在无法转换的情况下返回 error
UintOf 转换成指定类型的无符号整数
将一个有符号整数转换成无符号整数,负数将返回错误,正数和零正常转换
Value 将 source 的值保存到成 target 中
如果 source 为 nil,则会将 target 的值设置为其默认的零值。
若类型不能直接转换,会尝试其它种方式转换,比如 strconv.ParseInt 等。
FieldConvert 字段转换
用于 map 转换到一个对象实例或是从一个对象实例转换到 map 时,字段名称的转换。