values

package module
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2025 License: Apache-2.0 Imports: 17 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BytesToDBC

func BytesToDBC(s []byte) []byte

BytesToDBC 半角字节转全角字节

func BytesToRunes

func BytesToRunes(data []byte) []rune

BytesToRunes Bytes切片转Runes切片

func BytesToSBC

func BytesToSBC(s []byte) []byte

BytesToSBC 全角字节转半角字节

func BytesToString

func BytesToString(data []byte) string

BytesToString Bytes切片转字符串

func CeilFloat32

func CeilFloat32(number float32, prec int) float32

CeilFloat32 向上取整保留指定小数位数(不四舍五入)

  • 32/64位的浮点数转换后精度丢失,使用shopspring/decimal库进行计算

func CeilFloat64

func CeilFloat64(number float64, prec int) float64

CeilFloat64 向上取整保留指定小数位数(不四舍五入)

func FloorFloat32

func FloorFloat32(number float32, prec int) float32

FloorFloat32 向下取整保留指定小数位数(不四舍五入)

  • 32/64位的浮点数转换后精度丢失,使用shopspring/decimal库进行计算

func FloorFloat64

func FloorFloat64(number float64, prec int) float64

FloorFloat64 向下取整保留指定小数位数(不四舍五入)

func ParseTimeAutoLayout added in v1.0.1

func ParseTimeAutoLayout(timeString string, defaultLocation *time.Location) (time.Time, error)

ParseTimeAutoLayout 将时间字符串格式化为time.Time, 转换失败则返回空Time对象和错误信息

func RoundFloat32

func RoundFloat32(number float32, prec int) float32

RoundFloat32 四舍五入保留指定小数位数

  • 32/64位的浮点数转换后精度丢失,使用shopspring/decimal库进行计算

func RoundFloat64

func RoundFloat64(number float64, prec int) float64

RoundFloat64 四舍五入保留指定小数位数

func RunesToBytes

func RunesToBytes(data []rune) []byte

RunesToBytes Runes切片转Bytes切片

func RunesToString

func RunesToString(data []rune) string

RunesToString Runes切片转字符串

func StringIsZeroNumber

func StringIsZeroNumber(s string) bool

StringIsZeroNumber 检测给定的数字字符串是否能表示 0

func StringParseFloatIsOutOfRange

func StringParseFloatIsOutOfRange(v string, f float64, err error) bool

StringParseFloatIsOutOfRange 判断 strconv.ParseFloat() 转换的结果是否正常

  • 参数 v: 待转换的字符串
  • 参数 f,err: ParseFloat(v)转换的结果
  • ParseFloat处理浮点数时,如果浮点数极小或极大(远远小于或大于极值), 在多个Golang版本ParseFloat数据溢出后, 为返回错误信息
  • ParseFloat("4.9406564584124654417656879286822137236505980e-324",32) => 0 <nil>
  • ParseFloat("4.9406564584124654417656879286822137236505980e-330",64) => 0 <nil>

func StringToBool

func StringToBool(v string) bool

StringToUint64 string 转为 bool , 如果转换失败, 则返回零值

func StringToBoolD

func StringToBoolD(v string, defautVal bool) bool

StringToUint64D string 转为 bool , 如果转换失败, 则返回指定默认值

func StringToBoolE

func StringToBoolE(v string) (bool, error)

StringToUint64E string 转为 uint64 , 如果转换失败, 则返回零值和错误信息

func StringToBytes

func StringToBytes(data string) []byte

StringToBytes 字符串转Bytes切片

  • 在go版本<1.20中, 通过unsafe包和reflect包实现,其主要原理是拿到底层数组的指针,然后转换成[]byte或string。
  • 在go版本>=1.20中 由于安全性问题reflect包中的StringHeader和SliceHeader已被标注为deprecated,建议使用unsafe包来实现转换。
  • Use unsafe.String or unsafe.StringData instead.
  • Use unsafe.Slice or unsafe.SliceData instead.

func StringToDBC

func StringToDBC(s string) string

StringToDBC 半角字符串转全角字符串

func StringToFloat32

func StringToFloat32(v string) float32

StringToFloat32 string 转为 float32 , 如果转换失败, 则返回零值

func StringToFloat32D

func StringToFloat32D(v string, defautVal float32) float32

StringToFloat32D string 转为 float32 , 如果转换失败, 则返回指定默认值

func StringToFloat32E

func StringToFloat32E(v string) (float32, error)

StringToFloat32E string 转为 float32 , 如果转换失败, 则返回零值和错误信息

func StringToFloat64

func StringToFloat64(v string) float64

StringToFloat64 string 转为 float64 , 如果转换失败, 则返回零值

func StringToFloat64D

func StringToFloat64D(v string, defautVal float64) float64

StringToFloat64D string 转为 float64 , 如果转换失败, 则返回指定默认值

func StringToFloat64E

func StringToFloat64E(v string) (float64, error)

StringToFloat64E string 转为 float64 , 如果转换失败, 则返回零值和错误信息

func StringToInt

func StringToInt(v string) int

StringToInt string 转为 int , 如果转换失败, 则返回零值

func StringToInt8

func StringToInt8(v string) int8

StringToInt8 string 转为 int8 , 如果转换失败, 则返回零值

func StringToInt8D

func StringToInt8D(v string, defautVal int8) int8

StringToInt8D string 转为 int8 , 如果转换失败, 则返回指定默认值

func StringToInt8E

func StringToInt8E(v string) (int8, error)

StringToInt8E string 转为 int8 , 如果转换失败, 则返回零值和错误信息

func StringToInt16

func StringToInt16(v string) int16

StringToInt16 string 转为 int16 , 如果转换失败, 则返回零值

func StringToInt16D

func StringToInt16D(v string, defautVal int16) int16

StringToInt16D string 转为 int16 , 如果转换失败, 则返回指定默认值

func StringToInt16E

func StringToInt16E(v string) (int16, error)

StringToInt16E string 转为 int16 , 如果转换失败, 则返回零值和错误信息

func StringToInt32

func StringToInt32(v string) int32

StringToInt32 string 转为 int32 , 如果转换失败, 则返回零值

func StringToInt32D

func StringToInt32D(v string, defautVal int32) int32

StringToInt32D string 转为 int32 , 如果转换失败, 则返回指定默认值

func StringToInt32E

func StringToInt32E(v string) (int32, error)

StringToInt32E string 转为 int32 , 如果转换失败, 则返回零值和错误信息

func StringToInt64

func StringToInt64(v string) int64

StringToInt64 string 转为 int64 , 如果转换失败, 则返回零值

func StringToInt64D

func StringToInt64D(v string, defautVal int64) int64

StringToInt64D string 转为 int64 , 如果转换失败, 则返回指定默认值

func StringToInt64E

func StringToInt64E(v string) (int64, error)

StringToInt64E string 转为 int64 , 如果转换失败, 则返回零值和错误信息

func StringToIntD

func StringToIntD(v string, defautVal int) int

StringToIntD string 转为 int , 如果转换失败, 则返回指定默认值

func StringToIntE

func StringToIntE(v string) (int, error)

StringToIntE string 转为 int , 如果转换失败, 则返回零值和错误信息

func StringToRunes

func StringToRunes(str string) []rune

StringToRunes 字符串转rune切片

func StringToSBC

func StringToSBC(s string) string

StringToSBC 全角字符串转半角

func StringToTime

func StringToTime(v string) time.Time

StringToTime string 转为 time.Time, 如果转换失败, 则返回零值

  • 如待转换字符串未包含时区信息时, 则使用 Server/Local 时区

func StringToTimeD

func StringToTimeD(v string, defautVal time.Time) time.Time

StringToTimeD string 转为 time.Time, 如果转换失败, 则返回指定默认值

  • 如待转换字符串未包含时区信息时, 则使用 Server/Local 时区

func StringToTimeDuration

func StringToTimeDuration(v string) time.Duration

StringToTimeDuration string 转为 time.Duration , 如果转换失败, 则返回零值

  • 需要转换的 string 为一个数字,则当做纳秒时间处理

func StringToTimeDurationD

func StringToTimeDurationD(v string, defautVal time.Duration) time.Duration

StringToTimeDurationD string 转为 time.Duration , 如果转换失败, 则返回指定默认值

  • 需要转换的 string 为一个数字,则当做纳秒时间处理

func StringToTimeDurationE

func StringToTimeDurationE(v string) (toVal time.Duration, err error)

StringToTimeDurationE string 转为 time.Duration , 如果转换失败, 则返回零值和错误信息

  • 需要转换的 string 为一个数字,则当做纳秒时间处理

func StringToTimeE

func StringToTimeE(v string) (time.Time, error)

StringToTimeE string 转为 time.Time, 如果转换失败, 则返回零值和错误信息

  • 如待转换字符串未包含时区信息时, 则使用 Server/Local 时区

func StringToTimeMonth

func StringToTimeMonth(v string) time.Month

StringToTimeMonth string 转为 time.Month , 如果转换失败, 则返回零值

func StringToTimeMonthD

func StringToTimeMonthD(v string, defautVal time.Month) time.Month

StringToTimeMonthD string 转为 time.Month , 如果转换失败, 则返回指定默认值

func StringToTimeMonthE

func StringToTimeMonthE(v string) (toVal time.Month, err error)

StringToTimeMonthE string 转为 time.Month , 如果转换失败, 则返回零值和错误信息

func StringToTimeWeekday

func StringToTimeWeekday(v string) time.Weekday

StringToTimeWeekday string 转为 time.Weekday , 如果转换失败, 则返回零值

func StringToTimeWeekdayD

func StringToTimeWeekdayD(v string, defautVal time.Weekday) time.Weekday

StringToTimeWeekdayD string 转为 time.Weekday , 如果转换失败, 则返回指定默认值

func StringToTimeWeekdayE

func StringToTimeWeekdayE(v string) (toVal time.Weekday, err error)

StringToTimeWeekdayE string 转为 time.Weekday , 如果转换失败, 则返回零值和错误信息

func StringToTimeWith

func StringToTimeWith(v string, location *time.Location) (time.Time, error)

StringToTimeWith string 转为指定的时区的 time.Time(指定时区), 如果转换失败, 则返回零值和错误信息

  • 如待转换字符串未包含时区信息时, 则使用 location 时区

func StringToUint

func StringToUint(v string) uint

StringToUint string 转为 uint , 如果转换失败, 则返回零值

func StringToUint8

func StringToUint8(v string) uint8

StringToUint8 string 转为 uint8 , 如果转换失败, 则返回零值

func StringToUint8D

func StringToUint8D(v string, defautVal uint8) uint8

StringToUint8D string 转为 uint8 , 如果转换失败, 则返回指定默认值

func StringToUint8E

func StringToUint8E(v string) (uint8, error)

StringToUint8E string 转为 uint8 , 如果转换失败, 则返回零值和错误信息

func StringToUint16

func StringToUint16(v string) uint16

StringToUint16 string 转为 uint16 , 如果转换失败, 则返回零值

func StringToUint16D

func StringToUint16D(v string, defautVal uint16) uint16

StringToUint16D string 转为 uint16 , 如果转换失败, 则返回指定默认值

func StringToUint16E

func StringToUint16E(v string) (uint16, error)

StringToUint16E string 转为 uint16 , 如果转换失败, 则返回零值和错误信息

func StringToUint32

func StringToUint32(v string) uint32

StringToUint32 string 转为 uint32 , 如果转换失败, 则返回零值

func StringToUint32D

func StringToUint32D(v string, defautVal uint32) uint32

StringToUint32D string 转为 uint32 , 如果转换失败, 则返回指定默认值

func StringToUint32E

func StringToUint32E(v string) (uint32, error)

StringToUint32E string 转为 uint32 , 如果转换失败, 则返回零值和错误信息

func StringToUint64

func StringToUint64(v string) uint64

StringToUint64 string 转为 uint64 , 如果转换失败, 则返回零值

func StringToUint64D

func StringToUint64D(v string, defautVal uint64) uint64

StringToUint64D string 转为 uint64 , 如果转换失败, 则返回指定默认值

func StringToUint64E

func StringToUint64E(v string) (uint64, error)

StringToUint64E string 转为 uint64 , 如果转换失败, 则返回零值和错误信息

func StringToUintD

func StringToUintD(v string, defautVal uint) uint

StringToUintD string 转为 uint , 如果转换失败, 则返回指定默认值

func StringToUintE

func StringToUintE(v string) (uint, error)

StringToUintE string 转为 uint , 如果转换失败, 则返回零值和错误信息

func StringToUnix

func StringToUnix(v string) int64

StringToUnix string 转为 Unix时间戳(秒), 如果转换失败, 则返回零值

  • 如待转换的 string 为一个数字,则直接当做Unix时间戳(秒)处理
  • 如待转换的 string 为为不含有时区的日期时间字符串,则使用 Server/Local 时区

func StringToUnixD

func StringToUnixD(v string, defautVal int64) int64

StringToUnixD string 转为 Unix时间戳(秒) , 如果转换失败, 则返回指定默认值

  • 如待转换的 string 为一个数字,则直接当做Unix时间戳(秒)处理
  • 如待转换的 string 为为不含有时区的日期时间字符串,则使用 Server/Local 时区

func StringToUnixE

func StringToUnixE(v string) (toVal int64, err error)

StringToUnixE string 转为 Unix时间戳(秒) , 如果转换失败, 则返回零值和错误信息

  • 如待转换的 string 为一个数字,则直接当做Unix时间戳(秒)处理
  • 如待转换的 string 为不含有时区的日期时间字符串,则使用 Server/Local 时区

func StringToUnixMilli

func StringToUnixMilli(v string) int64

StringToUnixMilli string 转为 Unix时间戳(毫秒), 如果转换失败, 则返回零值

  • 如待转换的 string 为一个数字,则直接当做Unix时间戳(毫秒)处理
  • 如待转换的 string 为为不含有时区的日期时间字符串,则使用 Server/Local 时区

func StringToUnixMilliD

func StringToUnixMilliD(v string, defautVal int64) int64

StringToUnixMilliD string 转为 Unix时间戳(毫秒) , 如果转换失败, 则返回指定默认值

  • 如待转换的 string 为一个数字,则直接当做Unix时间戳(毫秒)处理
  • 如待转换的 string 为为不含有时区的日期时间字符串,则使用 Server/Local 时区

func StringToUnixMilliE

func StringToUnixMilliE(v string) (toVal int64, err error)

StringToUnixMilliE string 转为 Unix时间戳(毫秒) , 如果转换失败, 则返回零值和错误信息

  • 如待转换的 string 为一个数字,则直接当做Unix时间戳(毫秒)处理
  • 如待转换的 string 为为不含有时区的日期时间字符串,则使用 Server/Local 时区

func StringToUnixMilliWith

func StringToUnixMilliWith(v string, location *time.Location) (int64, error)

StringToUnixMilliWith string 转为 Unix时间戳(毫秒), 转换失败则返回0值和错误信息

  • 如待转换的 string 为一个数字,则直接当做Unix时间戳(毫秒)处理
  • 如待转换的 string 为为不含有时区的日期时间字符串,则使用location指定的时区

func StringToUnixWith

func StringToUnixWith(v string, location *time.Location) (int64, error)

func ToBase

func ToBase[T TypeBase](v any) T

ToBase 转换 any 目标为 TypeBase 泛型T, 如果转换失败, 则返回T零值

  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
  • 注意: 处理time.Time | time.Duration 类型时, 如待转换的any目标是日期时间字符串且未包含时区信息时则使用UTC时区

func ToBaseD

func ToBaseD[T TypeBase](v any, defaultVal T) T

ToBase 转换 any 目标为 TypeBase 泛型T, 如果转换失败, 则返回defaultVal指定的默认值

  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
  • 注意: 处理time.Time | time.Duration 类型时, 如待转换的any目标是日期时间字符串且未包含时区信息时则使用UTC时区

func ToBaseE

func ToBaseE[T TypeBase](v any) (toVal T, err error)

ToBaseE 转换 any 目标为 TypeBase 泛型T, 如果转换失败, 则返回T零值和错误信息

  • TypeBase: string | bool |int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
  • 注意: 处理time.Time | time.Duration 类型时, 如待转换的any目标是日期时间字符串且未包含时区信息时则使用UTC时区

func ToBool

func ToBool(v any) bool

ToBool 转换目标为Bool, 如果转换失败, 则返回false

func ToBoolD

func ToBoolD(v any, defaultVal bool) bool

ToBoolD 转换目标为Bool, 如果转换失败, 则返回指定的默认值

func ToBoolE

func ToBoolE(v any) (bool, error)

ToBoolE 转换目标为Bool, 如果转换失败, 则返回false和错误信息

func ToFloat32

func ToFloat32(v any) float32

ToFloat32 转换目标为 Float32, 如果转换失败, 则返回0

func ToFloat32D

func ToFloat32D(v any, defaultVal float32) float32

ToFloat32D 转换目标为 Float32, 如果转换失败, 则返回defaultVal指定的默认值

func ToFloat32E

func ToFloat32E(v any) (float32, error)

ToFloat32E 转换目标为 Float32, 如果转换失败, 则返回0和错误信息

  • 注意: 特殊浮点数(如NaN、正无穷、负无穷)无法将其转换为Float32

func ToFloat64

func ToFloat64(v any) float64

ToFloat64 转换目标为 Float64, 如果转换失败, 则返回0

func ToFloat64D

func ToFloat64D(v any, defaultVal float64) float64

ToFloat64D 转换目标为 Float64, 如果转换失败, 则返回defaultVal指定的默认值

func ToFloat64E

func ToFloat64E(v any) (float64, error)

ToFloat64E 转换目标为 Float64, 如果转换失败, 则返回0和错误信息

func ToInt

func ToInt(v any) int

ToInt 转换目标为 Int, 如果转换失败, 则返回0

func ToInt8

func ToInt8(v any) int8

ToInt8 转换目标为 Int8, 如果转换失败, 则返回0

func ToInt8D

func ToInt8D(v any, defaultVal int8) int8

ToInt8D 转换目标为 Int8, 如果转换失败, 则返回defaultVal指定的默认值

func ToInt8E

func ToInt8E(v any) (int8, error)

ToInt8E 转换目标为 Int8, 如果转换失败, 则返回0和错误信息

func ToInt16

func ToInt16(v any) int16

ToInt16 转换目标为 Int16, 如果转换失败, 则返回0

func ToInt16D

func ToInt16D(v any, defaultVal int16) int16

ToInt16D 转换目标为 Int16, 如果转换失败, 则返回defaultVal指定的默认值

func ToInt16E

func ToInt16E(v any) (int16, error)

ToInt16E 转换目标为 Int16, 如果转换失败, 则返回0和错误信息

func ToInt32

func ToInt32(v any) int32

ToInt32 转换目标为 Int32, 如果转换失败, 则返回0

func ToInt32D

func ToInt32D(v any, defaultVal int32) int32

ToInt32D 转换目标为 Int32, 如果转换失败, 则返回defaultVal指定的默认值

func ToInt32E

func ToInt32E(v any) (int32, error)

ToInt32E 转换目标为 Int32, 如果转换失败, 则返回0和错误信息

func ToInt64

func ToInt64(v any) int64

ToInt64 转换目标为 Int64, 如果转换失败, 则返回0

func ToInt64D

func ToInt64D(v any, defaultVal int64) int64

ToInt64D 转换目标为 Int64, 如果转换失败, 则返回defaultVal指定的默认值

func ToInt64E

func ToInt64E(v any) (int64, error)

ToInt64E 转换目标为 Int64, 如果转换失败, 则返回0和错误信息

func ToIntD

func ToIntD(v any, defaultVal int) int

ToIntD 转换目标为 Int, 如果目标为Nil或转换失败, 则返回defaultVal指定的默认值

func ToIntE

func ToIntE(v any) (int, error)

ToIntE 转换目标为 Int, 如果转换失败, 则返回0和错误信息

func ToMapAny

func ToMapAny[K TypeBase](v any) map[K]any

ToMapAny 转换目标为 map[K]any , 如果转换失败, 则返回空的map

  • 通过断言快速处理基本切片 map[TypeBase]any
  • 其他类型Map尝试反射检查后处理
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday

func ToMapAnyD

func ToMapAnyD[K TypeBase](v any, defaultVal map[K]any) map[K]any

ToMapAnyD 转换目标为 map[K]any , 如果转换失败, 则返回defaultVal指定的map

  • 通过断言快速处理基本切片 map[TypeBase]any
  • 其他类型Map尝试反射检查后处理
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday

func ToMapAnyE

func ToMapAnyE[K TypeBase](v any) (map[K]any, error)

ToMapAnyE 转换目标为 map[K]any, 如果转换失败, 则返回空的map和错误信息

  • 通过断言快速处理基本TypeBase类型切片 map[TypeBase]TypeBase
  • 其他类型Map尝试反射检查后处理
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday

func ToMapAs

func ToMapAs[K TypeBase, V TypeBase](v any) map[K]V

ToMapAs 转换目标为 map[K]V, 如果转换失败, 则返回空的 map[K]V

  • K: map key 的类型 TypeBase
  • V: map val 的类型 TypeBase
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration| time.Month | time.Weekday

func ToMapAsD

func ToMapAsD[K TypeBase, V TypeBase](v any, defaultVal map[K]V) map[K]V

ToMapAsD 转换目标为 map[K]V, 如果转换失败, 则返回defaultVal指定的map

  • K: map key 的类型 TypeBase
  • V: map val 的类型 TypeBase
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday

func ToMapAsE

func ToMapAsE[K TypeBase, V TypeBase](v any) (map[K]V, error)

ToMapAsE 转换目标为 map[K]V, 如果转换失败, 则返回空的 map[K]V 和错误信息

  • K: map key 的类型 TypeBase
  • V: map val 的类型 TypeBase
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday

func ToMapSlice

func ToMapSlice[K TypeBase, V TypeBase](v any) map[K][]V

ToMapSlice 转换目标为 map[K][]V, 如果转换失败, 则返回空的 map[K][]V

  • K: map key 的类型 TypeBase
  • V: map val 的类型 []TypeBase
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday

func ToMapSliceD

func ToMapSliceD[K TypeBase, V TypeBase](v any, defaultVal map[K][]V) map[K][]V

ToMapSliceD 转换目标为 map[K][]V, 如果转换失败, 则返回defaultVal指定的map

  • K: map key 的类型 TypeBase
  • V: map val 的类型 []TypeBase
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday

func ToMapSliceE

func ToMapSliceE[K TypeBase, V TypeBase](v any) (map[K][]V, error)

ToMapSliceE 转换目标为 map[K][]V, 如果转换失败, 则返回空的 map[K][]V 和错误信息

  • K: map key 的类型 TypeBase
  • V: map val 的类型 []TypeBase
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday

func ToSliceAny

func ToSliceAny(v any) []any

ToSliceAny 转换any目标为 []any 切片, 如果转换失败, 则返回空的 []any 切片

func ToSliceAnyD

func ToSliceAnyD(v any, defaultVal []any) []any

ToSliceAnyD 转换any目标为 []any 切片, 如果转换失败, 则返回defaultVal指定的默认值

func ToSliceAnyE

func ToSliceAnyE(v any) ([]any, error)

ToSliceAnyE 转换any目标为 []any 切片, 如果转换失败, 则返回空的 []any 切片和错误信息

func ToSliceAs

func ToSliceAs[T TypeBase | TypeBaseSlice](v any) []T

ToSliceAs 转换目标为任意类型的 []TypeBase 和 [][]TypeBase 切片, 如果转换失败, 则返回空的 []T 切片

  • 通过断言快速处理基本的[]TypeBase 和 [][]TypeBase切片, 其他类型切片尝试反射检查后处理
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday

func ToSliceAsD

func ToSliceAsD[T TypeBase | TypeBaseSlice](v any, defaultVal []T) []T

ToSliceAsD 转换目标为任意类型的 []TypeBase 和 [][]TypeBase 切片, 如果转换失败, 则返回defaultVal指定的默认值

  • 通过断言快速处理基本的[]TypeBase 和 [][]TypeBase切片, 其他类型切片尝试反射检查后处理
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday

func ToSliceAsE

func ToSliceAsE[T TypeBase | TypeBaseSlice](v any) ([]T, error)

ToSliceAsE 转换目标为任意类型的 []TypeBase 和 [][]TypeBase 切片, 如果转换失败, 则返回空的 []T 切片和错误信息

  • 通过断言快速处理基本的[]TypeBase 和 [][]TypeBase切片, 其他类型切片尝试反射检查后处理
  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday

func ToSliceMap

func ToSliceMap[K TypeBase, V TypeBase](v any) []map[K]V

ToSliceMap 转换目标为任意类型的 []map[K]V 切片, 如果转换失败, 则返回空的 []map[K]V 切片

  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
  • 转换时切片中的map元素如为nil将会忽略(跳过)

func ToSliceMapD

func ToSliceMapD[K TypeBase, V TypeBase](v any, defaultVal []map[K]V) []map[K]V

ToSliceMapD 转换目标为任意类型的 []map[K]V 切片, 如果转换失败, 则返回defaultVal指定的默认值

  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
  • 转换时切片中的map元素如为nil将会忽略(跳过)

func ToSliceMapE

func ToSliceMapE[K TypeBase, V TypeBase](v any) ([]map[K]V, error)

ToSliceMapE 转换目标为任意类型的 []map[K]V 切片, 如果转换失败, 则返回空的 []map[K]V 切片和错误信息

  • TypeBase: string | bool | int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64 | time.Time | time.Duration | time.Month | time.Weekday
  • 转换时切片中的map元素如为nil将会忽略(跳过)

func ToString

func ToString(v any) string

String 转换目标为字符串, 如果转换失败, 则返回空字符串

func ToStringD

func ToStringD(v any, defaultVal string) string

ToStringD 转换目标为字符串, 如果转换失败, 则返回defaultVal指定的默认值

func ToStringE

func ToStringE(v any) (string, error)

ToStringE 转换目标为字符串, 如果转换失败, 则返回空字符串和错误信息

func ToTime

func ToTime(v any) time.Time

ToTime 转换目标为time.Time, 转换失败则返回空Time对象

  • 如待转换目标是数值(当做Unix秒级时间戳), 则使用 Server/Local 时区
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 Server/Local 时区

func ToTimeD

func ToTimeD(v any, defaultVal time.Time) time.Time

ToTimeD 转换目标为time.Time, 转换失败则返回defaultVal指定的Time对象

  • 如待转换目标是数值(当做Unix秒级时间戳), 则使用 Server/Local 时区
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 Server/Local 时区

func ToTimeDuration

func ToTimeDuration(v any) time.Duration

ToTimeDuration 转换目标为time.Duration, 转换失败则返回零值的Duration

func ToTimeDurationD

func ToTimeDurationD(v any, defaultVal time.Duration) time.Duration

ToTimeDurationD 转换目标为time.Duration, 转换失败则返回defaultVal指定的Duration对象

func ToTimeDurationE

func ToTimeDurationE(v any) (time.Duration, error)

ToTimeDuration 转换目标为time.Duration, 转换失败则返回零值的Duration和错误信息

func ToTimeE

func ToTimeE(v any) (time.Time, error)

ToTimeE 转换目标为time.Time, 转换失败则返回空Time对象和错误信息

  • 如待转换目标是数值(当做Unix秒级时间戳), 则使用 Server/Local 时区
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 Server/Local 时区

func ToTimeMonth

func ToTimeMonth(v any) (toVal time.Month)

ToTimeMonth 转换目标为time.Month, 转换失败则返回零值的Month

func ToTimeMonthD

func ToTimeMonthD(v any, defaultVal time.Month) time.Month

ToTimeMonthD 转换目标为time.Month, 转换失败则返回defaultVal指定的Month对象

func ToTimeMonthE

func ToTimeMonthE(v any) (toVal time.Month, err error)

ToTimeMonthE 转换目标为time.Month, 转换失败则返回零值的Month和错误信息

func ToTimeWeekday

func ToTimeWeekday(v any) (toVal time.Weekday)

ToTimeWeekday 转换目标为time.Weekday, 转换失败则返回零值的Weekday

func ToTimeWeekdayD

func ToTimeWeekdayD(v any, defaultVal time.Weekday) time.Weekday

ToTimeMonthD 转换目标为time.Weekday, 转换失败则返回defaultVal指定的Weekday对象

func ToTimeWeekdayE

func ToTimeWeekdayE(v any) (toVal time.Weekday, err error)

ToTimeWeekdayE 转换目标为time.Weekday, 转换失败则返回零值的Weekday和错误信息

func ToTimeWith

func ToTimeWith(v any, location *time.Location) (time.Time, error)

ToTimeWith 转换目标为指定的时区的time.Time(指定时区), 转换失败则返回空Time对象和错误信息

  • 如待转换目标是数值(当做Unix秒级时间戳), 则使用 location 指定的时区
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 location 指定的时区

func ToUint

func ToUint(v any) uint

ToUint 转换目标为 Uint, 如果转换失败, 则返回0

func ToUint8

func ToUint8(v any) uint8

ToUint8 转换目标为 Uint8, 如果转换失败, 则返回0

func ToUint8D

func ToUint8D(v any, defaultVal uint8) uint8

ToUint8D 转换目标为 Uint8, 如果转换失败, 则返回defaultVal指定的默认值

func ToUint8E

func ToUint8E(v any) (uint8, error)

ToUint8E 转换目标为 Uint8, 如果转换失败, 则返回0和错误信息

func ToUint16

func ToUint16(v any) uint16

ToUint16 转换目标为 Uint16, 如果转换失败, 则返回0

func ToUint16D

func ToUint16D(v any, defaultVal uint16) uint16

ToUint16D 转换目标为 Uint16, 如果转换失败, 则返回defaultVal指定的默认值

func ToUint16E

func ToUint16E(v any) (uint16, error)

ToUint16E 转换目标为 Uint16, 如果转换失败, 则返回0和错误信息

func ToUint32

func ToUint32(v any) uint32

ToUint32 转换目标为 Uint32, 如果转换失败, 则返回0

func ToUint32D

func ToUint32D(v any, defaultVal uint32) uint32

ToUint32D 转换目标为 Uint32, 如果转换失败, 则返回defaultVal指定的默认值

func ToUint32E

func ToUint32E(v any) (uint32, error)

ToUint32E 转换目标为 Uint32, 如果转换失败, 则返回0和错误信息

func ToUint64

func ToUint64(v any) uint64

ToUint64 转换目标为 Uint64, 如果转换失败, 则返回0

func ToUint64D

func ToUint64D(v any, defaultVal uint64) uint64

ToUint64D 转换目标为 Uint64, 如果转换失败, 则返回defaultVal指定的默认值

func ToUint64E

func ToUint64E(v any) (uint64, error)

ToUint64E 转换目标为 Uint64, 如果转换失败, 则返回0和错误信息

func ToUintD

func ToUintD(v any, defaultVal uint) uint

ToUintD 转换目标为 Uint, 如果转换失败, 则返回defaultVal指定的默认值

func ToUintE

func ToUintE(v any) (uint, error)

ToUintE 转换目标为 Uint, 如果转换失败, 则返回0和错误信息

func ToUnix

func ToUnix(s any) int64

ToUnix 转换为Unix时间戳(秒), 如果转换失败, 则返回0值

  • 如待转换目标是数值(当做Unix秒级时间戳), 如符合条件( >= 0 && <= MaxInt64 )条件将直接返回
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 Server/Local 时区

func ToUnixD

func ToUnixD(s any, defaultVal int64) int64

ToUnixD 转换为Unix时间戳(秒), 如果转换失败, 则返回defaultVal指定的默认值

  • 如待转换目标是数值(当做Unix秒级时间戳), 如符合条件( >= 0 && <= MaxInt64 )条件将直接返回
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用 Server/Local 时区

func ToUnixMilli

func ToUnixMilli(s any) int64

ToUnixMilli 转换为Unix时间戳(毫秒), 如果转换失败, 则返回0值

  • 如待转换目标是数值(当做Unix毫秒级时间戳), 如符合条件( >= 0 && <= MaxInt64 )条件将直接返回
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用则使用 Server/Local 时区

func ToUnixMilliD

func ToUnixMilliD(s any, defaultVal int64) int64

ToUnixMilliD 转换为Unix时间戳(毫秒), 如果转换失败, 则返回defaultVal指定的默认值

  • 如待转换目标是数值(当做Unix毫秒级时间戳), 如符合条件( >= 0 && <= MaxInt64 )条件将直接返回
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用则使用 Server/Local 时区

func ToUnixMilliWith

func ToUnixMilliWith(s any, location *time.Location) (int64, error)

ToUnixMilliWith 转换any目标为Unix时间戳(毫秒), 转换失败则返回0值和错误信息

  • 如待转换目标是数值(当做Unix毫秒级时间戳), 如符合条件( >= 0 && <= MaxInt64 )条件将直接返回
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用则使用location指定的时区

func ToUnixWith

func ToUnixWith(s any, location *time.Location) (int64, error)

ToUnixWith 转换any目标为Unix时间戳(秒), 转换失败则返回0值和错误信息

  • 如待转换目标是数值(当做Unix秒级时间戳), 如符合条件( >= 0 && <= MaxInt64 )条件将直接返回
  • 如待转换目标是字符串(日期时间)未包含时区信息时, 则使用则使用location指定的时区

func UnderefVal

func UnderefVal(v any) any

UnderefVal 探测 any 目标, 将指针类型脱敏为原始标量类型

  • 如果目标是nil, 则返回nil
  • 如果目标非指针, 则返回原值
  • 如果目标含有方法, 则返回原值
  • 如果目标是nil指针, 则返回nil
  • 如果目标是非nil指针, 则返回指针指向的指向的值(any类型的原始标量)

Types

type TypeBase

type TypeBase interface {
	string | bool | TypeNumber | TypeTime
}

type TypeBaseSlice

type TypeBaseSlice interface {
	[]string | []bool |
		[]int | []int8 | []int16 | []int32 | []int64 |
		[]uint | []uint8 | []uint16 | []uint32 | []uint64 |
		[]float32 | []float64 |
		[]time.Time | []time.Duration | []time.Month | []time.Weekday
}

type TypeFloat

type TypeFloat interface {
	float32 | float64
}

type TypeInt

type TypeInt interface {
	int | int8 | int16 | int32 | int64 // rune => int32
}

type TypeMapBaseAny added in v1.0.4

type TypeMapBaseAny[K TypeBase] map[K]any

type TypeMapBaseAs added in v1.0.4

type TypeMapBaseAs[K TypeBase, V TypeBase] map[K]V

type TypeMapComparableAny added in v1.0.4

type TypeMapComparableAny[K comparable] map[K]any

type TypeNumber

type TypeNumber interface {
	TypeInt | TypeUint | TypeFloat
}

type TypeSliceAny

type TypeSliceAny []any

type TypeSliceBase

type TypeSliceBase[T TypeBase] []T

type TypeTime

type TypeTime interface {
	time.Time | time.Duration | time.Month | time.Weekday
}

type TypeUint

type TypeUint interface {
	uint | uint8 | uint16 | uint32 | uint64 // byte => uint8  uintptr => uint32/uint64
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL