convert

package
v0.0.13 Latest Latest
Warning

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

Go to latest
Published: May 22, 2025 License: MIT Imports: 2 Imported by: 0

README

convert

简介

convert 包提供了通用且强大的数据类型转换工具,支持任意类型与基础类型、切片、Map、结构体之间的安全转换。基于 gconv 实现,兼容多种常见场景,适用于数据解析、配置加载、接口适配等需求。

主要特性
  • 支持 int、uint、float、bool、string、time.Time、time.Duration 等基础类型的安全转换
  • 支持切片、Map、结构体的自动转换
  • 提供带错误返回和无错误返回的两套 API,兼顾安全性与便捷性
  • 兼容 gconv,支持多种输入格式(字符串、数字、布尔、时间戳等)
  • 支持结构体与 Map 互转、切片批量转换
  • 完善的单元测试覆盖,健壮性强
设计理念

convert 包遵循"统一、健壮、易用、类型安全"的设计理念,封装 gconv 能力,提供更直观的 API。通过分层 API(带 error/无 error),兼顾类型安全和开发效率,适合多种业务场景。

安装

前置条件
  • Go 版本要求:Go 1.18+
  • 依赖要求:
    • github.com/gogf/gf/v2
安装命令
go get -u github.com/fsyyft-go/kit/convert

快速开始

基础用法
package main

import (
    "fmt"
    "github.com/fsyyft-go/kit/convert"
)

func main() {
    // 基础类型转换
    i, err := convert.ToInt("123")
    f, err := convert.ToFloat64("123.45")
    b, err := convert.ToBool(1)
    s, err := convert.ToString(456)
    t, err := convert.ToTime("2025-01-01 12:00:00")
    d, err := convert.ToDuration("2h30m")
    fmt.Println(i, f, b, s, t, d)

    // 切片与 Map 转换
    ints, err := convert.ToSliceInt([]any{"1", 2, 3})
    m, err := convert.ToMap(struct{A int}{A: 1})
    fmt.Println(ints, m)

    // 结构体转换
    type User struct {
        Name string `json:"name"`
        Age  int    `json:"age"`
    }
    var user User
    err = convert.ToStruct(map[string]any{"name": "Tom", "age": 20}, &user)
    fmt.Println(user)
}
无错误返回版本
v := convert.Int("123")      // 123
b := convert.Bool("true")    // true
s := convert.String(456)      // "456"
sl := convert.SliceInt([]any{"1", 2, 3}) // []int{1,2,3}

详细指南

核心概念
  • 类型安全:所有 ToXxx 方法均返回 error,适合对输入不确定场景;Xxx 方法忽略错误,适合已知输入。
  • 结构体与 Map 互转:支持 map[string]any <-> struct,支持切片批量转换。
  • 切片批量转换:支持各种类型切片的自动转换。
  • gconv 兼容:底层基于 gconv,支持丰富的输入格式。
常见用例
1. 字符串转 int/float/bool
i, err := convert.ToInt("123")
f, err := convert.ToFloat64("123.45")
b, err := convert.ToBool("true")
2. 任意类型转 string
s, err := convert.ToString(123.45) // "123.45"
3. 切片批量转换
ints, err := convert.ToSliceInt([]any{"1", 2, 3}) // []int{1,2,3}
4. Map 与结构体互转
type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}
var user User
err := convert.ToStruct(map[string]any{"name": "Tom", "age": 20}, &user)
// 结构体转 map
m, err := convert.ToMap(user)
5. 无错误返回的便捷用法
v := convert.Int("abc") // 0,转换失败返回零值
最佳实践
  • 推荐优先使用 ToXxx 带 error 的方法,保证类型安全
  • 对于已知输入可用 Xxx 方法,简化代码
  • 结构体转换时字段需导出且 tag 匹配
  • 切片/Map 转换建议输入为 []any/map[string]any
  • 错误输入建议始终检查 error

API 文档

主要类型

convert 包不定义特殊类型,直接使用 Go 基础类型和标准库类型。

关键函数
ToInt/ToFloat64/ToBool/ToString/ToTime/ToDuration
func ToInt(v any) (int, error)
func ToFloat64(v any) (float64, error)
func ToBool(v any) (bool, error)
func ToString(v any) (string, error)
func ToTime(v any) (time.Time, error)
func ToDuration(v any) (time.Duration, error)
ToSliceInt/ToSliceFloat64/ToSliceStr/ToMap/ToStruct
func ToSliceInt(v any) ([]int, error)
func ToSliceFloat64(v any) ([]float64, error)
func ToSliceStr(v any) ([]string, error)
func ToMap(v any) (map[string]any, error)
func ToStruct(v any, out any) error
无错误返回版本
func Int(v any) int
func Float64(v any) float64
func Bool(v any) bool
func String(v any) string
func SliceInt(v any) []int
func Map(v any) map[string]any
错误处理
  • ToXxx 方法遇到无法转换时返回 error,Xxx 方法返回类型零值
  • 结构体转换字段不匹配时返回 error
  • 切片/Map 转换输入类型不符时返回 error

性能指标

操作 性能指标 说明
基础类型转换 O(1) 常量时间
切片/Map/结构体转换 O(n) n 为元素数量

测试覆盖率

覆盖率
convert 100%

所有导出方法均有单元测试,覆盖常见、边界和错误场景。

调试指南

常见问题排查
转换失败返回零值
  • 建议优先使用 ToXxx 方法,检查 error
  • 输入类型不符、字段不匹配、格式错误等均会导致转换失败
结构体/Map 转换异常
  • 检查字段名、tag 是否匹配,字段需导出
  • 切片批量转换时元素类型需一致

相关文档

贡献指南

欢迎任何形式的贡献,包括但不限于:

  • 报告问题
  • 提交功能建议
  • 提交代码改进
  • 完善文档

请参考贡献指南了解详细信息。

许可证

本项目采用 MIT License 许可证。查看 LICENSE 文件了解更多信息。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool(v any) bool

Bool 将任意类型 v 转换为 bool 类型,如果转换失败则返回 false。

参数:

  • v:待转换的任意类型。

返回值:

  • bool:转换后的 bool 类型结果,若转换失败则为 false。

提示:如果无法确保转换不会发生 error,推荐使用 ToBool 这种带 error 的方法。

func Bytes

func Bytes(v any) []byte

Bytes 将任意类型 v 转换为字节切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []byte:转换后的字节切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToBytes 这种带 error 的方法。

func Duration

func Duration(v any) time.Duration

Duration 将任意类型 v 转换为 time.Duration 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • time.Duration:转换后的 time.Duration 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToDuration 这种带 error 的方法。

func Float32

func Float32(v any) float32

Float32 将任意类型 v 转换为 float32 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • float32:转换后的 float32 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToFloat32 这种带 error 的方法。

func Float64

func Float64(v any) float64

Float64 将任意类型 v 转换为 float64 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • float64:转换后的 float64 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToFloat64 这种带 error 的方法。

func Int

func Int(v any) int

Int 将任意类型 v 转换为 int 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • int:转换后的 int 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToInt 这种带 error 的方法。

func Int16

func Int16(v any) int16

Int16 将任意类型 v 转换为 int16 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • int16:转换后的 int16 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToInt16 这种带 error 的方法。

func Int32

func Int32(v any) int32

Int32 将任意类型 v 转换为 int32 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • int32:转换后的 int32 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToInt32 这种带 error 的方法。

func Int64

func Int64(v any) int64

Int64 将任意类型 v 转换为 int64 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • int64:转换后的 int64 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToInt64 这种带 error 的方法。

func Int8

func Int8(v any) int8

Int8 将任意类型 v 转换为 int8 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • int8:转换后的 int8 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToInt8 这种带 error 的方法。

func Map

func Map(v any) map[string]any

Map 将任意类型 v 转换为 map[string]any 类型,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • map[string]any:转换后的 map[string]any 类型,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToMap 这种带 error 的方法。

func MapStrAny

func MapStrAny(v any) map[string]any

MapStrAny 将任意类型 v 转换为 map[string]any 类型,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • map[string]any:转换后的 map[string]any 类型,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToMapStrAny 这种带 error 的方法。

func MapStrStr

func MapStrStr(v any) map[string]string

MapStrStr 将任意类型 v 转换为 map[string]string 类型,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • map[string]string:转换后的 map[string]string 类型,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToMapStrStr 这种带 error 的方法。

func Runes

func Runes(v any) []rune

Runes 将任意类型 v 转换为 rune 切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []rune:转换后的 rune 切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToRunes 这种带 error 的方法。

func Slice

func Slice(v any) []any

Slice 将任意类型 v 转换为 any 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []any:转换后的 any 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSlice 这种带 error 的方法。

func SliceAny

func SliceAny(v any) []any

SliceAny 将任意类型 v 转换为 any 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []any:转换后的 any 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceAny 这种带 error 的方法。

func SliceAnyMap

func SliceAnyMap(v any) []map[string]any

SliceAnyMap 将任意类型 v 转换为 map[string]any 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []map[string]any:转换后的 map[string]any 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceAnyMap 这种带 error 的方法。

func SliceFloat32

func SliceFloat32(v any) []float32

SliceFloat32 将任意类型 v 转换为 float32 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []float32:转换后的 float32 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceFloat32 这种带 error 的方法。

func SliceFloat64

func SliceFloat64(v any) []float64

SliceFloat64 将任意类型 v 转换为 float64 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []float64:转换后的 float64 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceFloat64 这种带 error 的方法。

func SliceInt

func SliceInt(v any) []int

SliceInt 将任意类型 v 转换为 int 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []int:转换后的 int 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceInt 这种带 error 的方法。

func SliceInt32

func SliceInt32(v any) []int32

SliceInt32 将任意类型 v 转换为 int32 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []int32:转换后的 int32 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceInt32 这种带 error 的方法。

func SliceInt64

func SliceInt64(v any) []int64

SliceInt64 将任意类型 v 转换为 int64 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []int64:转换后的 int64 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceInt64 这种带 error 的方法。

func SliceMap

func SliceMap(v any) []map[string]any

SliceMap 将任意类型 v 转换为 map[string]any 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []map[string]any:转换后的 map[string]any 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceMap 这种带 error 的方法。

func SliceStr

func SliceStr(v any) []string

SliceStr 将任意类型 v 转换为 string 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []string:转换后的 string 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceStr 这种带 error 的方法。

func SliceUint

func SliceUint(v any) []uint

SliceUint 将任意类型 v 转换为 uint 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []uint:转换后的 uint 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceUint 这种带 error 的方法。

func SliceUint32

func SliceUint32(v any) []uint32

SliceUint32 将任意类型 v 转换为 uint32 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []uint32:转换后的 uint32 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceUint32 这种带 error 的方法。

func SliceUint64

func SliceUint64(v any) []uint64

SliceUint64 将任意类型 v 转换为 uint64 类型切片,如果转换失败则返回 nil。

参数:

  • v:待转换的任意类型。

返回值:

  • []uint64:转换后的 uint64 类型切片,若转换失败则为 nil。

提示:如果无法确保转换不会发生 error,推荐使用 ToSliceUint64 这种带 error 的方法。

func String

func String(v any) string

String 将任意类型 v 转换为 string 类型,如果转换失败则返回空字符串。

参数:

  • v:待转换的任意类型。

返回值:

  • string:转换后的 string 类型结果,若转换失败则为 ""。

提示:如果无法确保转换不会发生 error,推荐使用 ToString 这种带 error 的方法。

func Time

func Time(v any) time.Time

Time 将任意类型 v 转换为 time.Time 类型,如果转换失败则返回零值。

参数:

  • v:待转换的任意类型。

返回值:

  • time.Time:转换后的 time.Time 类型结果,若转换失败则为零值。

提示:如果无法确保转换不会发生 error,推荐使用 ToTime 这种带 error 的方法。

func ToBool

func ToBool(v any) (bool, error)

ToBool 将任意类型 v 转换为 bool 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • bool:转换后的 bool 类型结果。
  • error:转换过程中发生的错误。

func ToBytes

func ToBytes(v any) ([]byte, error)

ToBytes 将任意类型 v 转换为字节切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []byte:转换后的字节切片。
  • error:转换过程中发生的错误。

func ToDuration

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

ToDuration 将任意类型 v 转换为 time.Duration 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • time.Duration:转换后的 time.Duration 类型结果。
  • error:转换过程中发生的错误。

func ToFloat32

func ToFloat32(v any) (float32, error)

ToFloat32 将任意类型 v 转换为 float32 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • float32:转换后的 float32 类型结果。
  • error:转换过程中发生的错误。

func ToFloat64

func ToFloat64(v any) (float64, error)

ToFloat64 将任意类型 v 转换为 float64 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • float64:转换后的 float64 类型结果。
  • error:转换过程中发生的错误。

func ToInt

func ToInt(v any) (int, error)

ToInt 将任意类型 v 转换为 int 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • int:转换后的 int 类型结果。
  • error:转换过程中发生的错误。

func ToInt16

func ToInt16(v any) (int16, error)

ToInt16 将任意类型 v 转换为 int16 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • int16:转换后的 int16 类型结果。
  • error:转换过程中发生的错误。

func ToInt32

func ToInt32(v any) (int32, error)

ToInt32 将任意类型 v 转换为 int32 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • int32:转换后的 int32 类型结果。
  • error:转换过程中发生的错误。

func ToInt64

func ToInt64(v any) (int64, error)

ToInt64 将任意类型 v 转换为 int64 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • int64:转换后的 int64 类型结果。
  • error:转换过程中发生的错误。

func ToInt8

func ToInt8(v any) (int8, error)

ToInt8 将任意类型 v 转换为 int8 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • int8:转换后的 int8 类型结果。
  • error:转换过程中发生的错误。

func ToMap

func ToMap(v any) (map[string]any, error)

ToMap 将任意类型 v 转换为 map[string]interface{} 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • map[string]any:转换后的 map[string]any 类型。
  • error:转换过程中发生的错误。

func ToMapStrAny

func ToMapStrAny(v any) (map[string]any, error)

ToMapStrAny 将任意类型 v 转换为 map[string]interface{} 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • map[string]any:转换后的 map[string]any 类型。
  • error:转换过程中发生的错误。

func ToMapStrStr

func ToMapStrStr(v any) (map[string]string, error)

ToMapStrStr 将任意类型 v 转换为 map[string]string 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • map[string]string:转换后的 map[string]string 类型。
  • error:转换过程中发生的错误。

func ToRunes

func ToRunes(v any) ([]rune, error)

ToRunes 将任意类型 v 转换为 rune 切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []rune:转换后的 rune 切片。
  • error:转换过程中发生的错误。

func ToSlice

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

ToSlice 将任意类型 v 转换为 interface{} 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []interface{}:转换后的 interface{} 类型切片。
  • error:转换过程中发生的错误。

func ToSliceAny

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

ToSliceAny 将任意类型 v 转换为 any 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []any:转换后的 any 类型切片。
  • error:转换过程中发生的错误。

func ToSliceAnyMap

func ToSliceAnyMap(v any) ([]map[string]any, error)

ToSliceAnyMap 将任意类型 v 转换为 map[string]any 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []map[string]any:转换后的 map[string]any 类型切片。
  • error:转换过程中发生的错误。

func ToSliceFloat32

func ToSliceFloat32(v any) ([]float32, error)

ToSliceFloat32 将任意类型 v 转换为 float32 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []float32:转换后的 float32 类型切片。
  • error:转换过程中发生的错误。

func ToSliceFloat64

func ToSliceFloat64(v any) ([]float64, error)

ToSliceFloat64 将任意类型 v 转换为 float64 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []float64:转换后的 float64 类型切片。
  • error:转换过程中发生的错误。

func ToSliceInt

func ToSliceInt(v any) ([]int, error)

ToSliceInt 将任意类型 v 转换为 int 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []int:转换后的 int 类型切片。
  • error:转换过程中发生的错误。

func ToSliceInt32

func ToSliceInt32(v any) ([]int32, error)

ToSliceInt32 将任意类型 v 转换为 int32 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []int32:转换后的 int32 类型切片。
  • error:转换过程中发生的错误。

func ToSliceInt64

func ToSliceInt64(v any) ([]int64, error)

ToSliceInt64 将任意类型 v 转换为 int64 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []int64:转换后的 int64 类型切片。
  • error:转换过程中发生的错误。

func ToSliceMap

func ToSliceMap(v any) ([]map[string]any, error)

ToSliceMap 将任意类型 v 转换为 map[string]interface{} 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []map[string]any:转换后的 map[string]any 类型切片。
  • error:转换过程中发生的错误。

func ToSliceStr

func ToSliceStr(v any) ([]string, error)

ToSliceStr 将任意类型 v 转换为 string 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []string:转换后的 string 类型切片。
  • error:转换过程中发生的错误。

func ToSliceUint

func ToSliceUint(v any) ([]uint, error)

ToSliceUint 将任意类型 v 转换为 uint 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []uint:转换后的 uint 类型切片。
  • error:转换过程中发生的错误。

func ToSliceUint32

func ToSliceUint32(v any) ([]uint32, error)

ToSliceUint32 将任意类型 v 转换为 uint32 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []uint32:转换后的 uint32 类型切片。
  • error:转换过程中发生的错误。

func ToSliceUint64

func ToSliceUint64(v any) ([]uint64, error)

ToSliceUint64 将任意类型 v 转换为 uint64 类型切片。

参数:

  • v:待转换的任意类型。

返回值:

  • []uint64:转换后的 uint64 类型切片。
  • error:转换过程中发生的错误。

func ToString

func ToString(v any) (string, error)

ToString 将任意类型 v 转换为 string 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • string:转换后的 string 类型结果。
  • error:转换过程中发生的错误。

func ToStruct

func ToStruct(v any, out any) error

ToStruct 将任意类型 v 转换为结构体,结果存储到 out 指针指向的结构体中。

参数:

  • v:待转换的任意类型。
  • out:结构体指针,转换结果存储于此。

返回值:

  • error:转换过程中发生的错误。

func ToStructs

func ToStructs(v any, out any) error

ToStructs 将任意类型 v 转换为结构体切片,结果存储到 out 指针指向的切片中。

参数:

  • v:待转换的任意类型。
  • out:结构体切片指针,转换结果存储于此。

返回值:

  • error:转换过程中发生的错误。

func ToTime

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

ToTime 将任意类型 v 转换为 time.Time 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • time.Time:转换后的 time.Time 类型结果。
  • error:转换过程中发生的错误。

func ToUint

func ToUint(v any) (uint, error)

ToUint 将任意类型 v 转换为 uint 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • uint:转换后的 uint 类型结果。
  • error:转换过程中发生的错误。

负数或负数字符串时返回 0。

func ToUint16

func ToUint16(v any) (uint16, error)

ToUint16 将任意类型 v 转换为 uint16 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • uint16:转换后的 uint16 类型结果。
  • error:转换过程中发生的错误。

负数或负数字符串时返回 0。

func ToUint32

func ToUint32(v any) (uint32, error)

ToUint32 将任意类型 v 转换为 uint32 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • uint32:转换后的 uint32 类型结果。
  • error:转换过程中发生的错误。

负数或负数字符串时返回 0。

func ToUint64

func ToUint64(v any) (uint64, error)

ToUint64 将任意类型 v 转换为 uint64 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • uint64:转换后的 uint64 类型结果。
  • error:转换过程中发生的错误。

负数或负数字符串时返回 0。

func ToUint8

func ToUint8(v any) (uint8, error)

ToUint8 将任意类型 v 转换为 uint8 类型。

参数:

  • v:待转换的任意类型。

返回值:

  • uint8:转换后的 uint8 类型结果。
  • error:转换过程中发生的错误。

负数或负数字符串时返回 0。

func Uint

func Uint(v any) uint

Uint 将任意类型 v 转换为 uint 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • uint:转换后的 uint 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToUint 这种带 error 的方法。

func Uint16

func Uint16(v any) uint16

Uint16 将任意类型 v 转换为 uint16 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • uint16:转换后的 uint16 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToUint16 这种带 error 的方法。

func Uint32

func Uint32(v any) uint32

Uint32 将任意类型 v 转换为 uint32 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • uint32:转换后的 uint32 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToUint32 这种带 error 的方法。

func Uint64

func Uint64(v any) uint64

Uint64 将任意类型 v 转换为 uint64 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • uint64:转换后的 uint64 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToUint64 这种带 error 的方法。

func Uint8

func Uint8(v any) uint8

Uint8 将任意类型 v 转换为 uint8 类型,如果转换失败则返回 0。

参数:

  • v:待转换的任意类型。

返回值:

  • uint8:转换后的 uint8 类型结果,若转换失败则为 0。

提示:如果无法确保转换不会发生 error,推荐使用 ToUint8 这种带 error 的方法。

Types

This section is empty.

Jump to

Keyboard shortcuts

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