conv

package module
v1.3.5 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2024 License: MIT Imports: 6 Imported by: 10

README

conv Go codecov license PkgGoDev Go version

conv包提供了各个类型之间的转换:

conv.MustIntOf[int]("123", 0)  // 返回 123 的数值
conv.MustString(123, "")// 返回字符串 123
conv.Int("123", 0)      // 返回 123 数值和 nil 的 error 接口

conv.SliceOf[int]([]string{"1", "2", "3"}) // 返回 []int{1, 2, 3}

安装

go get github.com/issue9/conv

版权

本项目采用MIT开源授权许可证,完整的授权说明可在LICENSE文件中找到。

Documentation

Overview

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 中。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool(val any) (bool, error)

Bool 将 val 转换成 bool 类型或是在无法转换的情况下返回 error

以下值被可以被正确转换:

123(true), 0(false),"-123"(true), "on"(true), "off"(false), "true"(true), "false"(false)

func Bytes

func Bytes(val any) ([]byte, error)

Bytes 将 val 转换成 []byte 类型或是在无法转换的情况下返回 error

func Float32

func Float32(val any) (float32, error)

Float32 将 val 转换成 float32 类型或是在无法转换的情况下返回 error

func Float64

func Float64(val any) (float64, error)

Float64 将 val 转换成 float64 类型或是在无法转换的情况下返回 error

func Int

func Int(val any) (int, error)

Int 将 val 转换成 int 类型或是在无法转换的情况下返回 error

func Int32

func Int32(val any) (int32, error)

Int32 将 val 转换成 int32 类型或是在无法转换的情况下返回 error

func Int64

func Int64(val any) (int64, error)

Int64 将 val 转换成 int64 类型或是在无法转换的情况下返回 error

func Int8

func Int8(val any) (int8, error)

Int8 将 val 转换成 int8 类型或是在无法转换的情况下返回 error

func IntOf added in v1.3.0

func IntOf[T Signed](val any) (T, error)

IntOf 转换成指定类型的符号整数

func Map2Obj

func Map2Obj(src any, dest any, conv FieldConvert) error

Map2Obj 将 map 中的数据转换成一个结构中的数据

func MustBool

func MustBool(val any, def ...bool) bool

MustBool 将 val 转换成 bool 类型或是在无法转换的情况下返回 def 参数

func MustBytes

func MustBytes(val any, def ...[]byte) []byte

MustBytes 将 val 转换成 []byte 类型或是在无法转换的情况下返回 def 参数

func MustFloat32

func MustFloat32(val any, def ...float32) float32

MustFloat32 将 val 转换成 float32 类型或是在无法转换的情况下返回 def 参数

func MustFloat64

func MustFloat64(val any, def ...float64) float64

MustFloat64 将 val 转换成 float64 类型或是在无法转换的情况下返回 def 参数

func MustInt

func MustInt(val any, def ...int) int

MustInt 将 val 转换成 int 类型或是在无法转换的情况下返回 def 参数

func MustInt32

func MustInt32(val any, def ...int32) int32

MustInt32 将 val 转换成 int32 类型或是在无法转换的情况下返回 def 参数

func MustInt64

func MustInt64(val any, def ...int64) int64

MustInt64 将 val 转换成 int64 类型或是在无法转换的情况下返回 def 参数

func MustInt8

func MustInt8(val any, def ...int8) int8

MustInt8 将 val 转换成 int8 类型或是在无法转换的情况下返回 def 参数

func MustIntOf added in v1.3.0

func MustIntOf[T Signed](val any, def ...T) T

MustIntOf 将 val 转换成 T 类型或是在无法转换的情况下返回 def 参数

func MustSlice

func MustSlice(val any, def ...[]any) []any

MustSlice 将 val 转换成 slice 类型或是在无法转换的情况下返回 def 参数

func MustSliceOf added in v1.3.0

func MustSliceOf[T any](val any, def ...[]T) []T

MustSliceOf 将 val 转换成 slice 类型或是在无法转换的情况下返回 def 参数

func MustString

func MustString(val any, def ...string) string

MustString 将 val 转换成 string 类型或是在无法转换的情况下返回 def 参数

func MustUint

func MustUint(val any, def ...uint) uint

MustUint 将 val 转换成 uint 类型或是在无法转换的情况下返回 def 参数

func MustUint32

func MustUint32(val any, def ...uint32) uint32

MustUint32 将 val 转换成 uint32 类型或是在无法转换的情况下返回 def 参数

func MustUint64

func MustUint64(val any, def ...uint64) uint64

MustUint64 将 val 转换成 uint64 类型或是在无法转换的情况下返回 def 参数

func MustUint8

func MustUint8(val any, def ...uint8) uint8

MustUint8 将 val 转换成 uint8 类型或是在无法转换的情况下返回 def 参数

func MustUintOf added in v1.3.0

func MustUintOf[T Unsigned](val any, def ...T) T

MustUintOf 将 val 转换成 T 类型或是在无法转换的情况下返回 def 参数

func Obj2Map

func Obj2Map(obj any, conv FieldConvert) (map[string]any, error)

Obj2Map 将 obj 转换成 map

NOTE: 只能转换可导出的数据。

func Slice

func Slice(val any) ([]any, error)

Slice 将 val 转换成 slice 类型或是在无法转换的情况下返回 error

[]int, []interface{} 以及数组都可以转换。 []byte("123") 返回 []interface{}{byte(49),byte(50),byte(51)} "123" 返回 []interface{}{rune(49),rune(50),rune(51)}

func SliceOf added in v1.3.0

func SliceOf[T any](val any) ([]T, error)

SliceOf 将 val 转换成 []T

只要 val 是数组或是字符串,且其元素能转换成 T 类型即可。

func String

func String(val any) (string, error)

String 将 val 转换成 string 类型或是在无法转换的情况下返回 error

NOTE: fmt.Stringer, ret.Error 和 encoding.TextMarshaler 都将被正确转换成字符串。

func Uint

func Uint(val any) (uint, error)

Uint 将 val 转换成 uint 类型或是在无法转换的情况下返回 error

func Uint32

func Uint32(val any) (uint32, error)

Uint32 将 val 转换成 uint32 类型或是在无法转换的情况下返回 error

func Uint64

func Uint64(val any) (uint64, error)

Uint64 将 val 转换成 uint64 类型或是在无法转换的情况下返回 error

func Uint8

func Uint8(val any) (uint8, error)

Uint8 将 val 转换成 uint8 类型或是在无法转换的情况下返回 error

func UintOf added in v1.3.0

func UintOf[T Unsigned](val any) (T, error)

UintOf 转换成指定类型的无符号整数

将一个有符号整数转换成无符号整数,负数将返回错误,正数和零正常转换

func Value

func Value(source any, target reflect.Value) error

Value 将 source 的值保存到成 target 中

如果 source 为 nil,则会将 target 的值设置为其默认的零值。

若类型不能直接转换,会尝试其它种方式转换,比如 strconv.ParseInt 等。

Types

type FieldConvert

type FieldConvert func(src string) (dest string)

FieldConvert 字段转换

用于 map 转换到一个对象实例或是从一个对象实例转换到 map 时,字段名称的转换。

type Signed added in v1.3.4

type Signed interface {
	~int | ~int8 | ~int16 | ~int32 | ~int64
}

type Unsigned added in v1.3.4

type Unsigned interface {
	~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr
}

Jump to

Keyboard shortcuts

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