convert

package
v0.0.16 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2026 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

Overview

Package convert 提供基于 github.com/gogf/gf/v2/util/gconv 的常用类型转换封装。

本包覆盖数值、布尔、字符串、time、slice、map 以及 struct 填充等常见转换场景。 ToXxx 系列函数返回转换结果和 error,调用方可以据此区分真实零值和转换失败;Xxx 简写函数会吞掉错误并返回对应零值,适合输入来源可控或允许使用兜底值的路径。

具体输入格式、结构体标签处理和错误信息由 gconv 当前实现决定。本包额外约定无符号整数 转换会先按 int64 解析,负数或负数字符串返回 0 且不产生错误。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool(v any) bool

Bool 将 v 转换为 bool 值,底层转换失败时返回 false。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToBool 相同。

返回:

  • bool: 转换成功后的bool 值;ToBool 返回错误时为 false。

调用方需要区分真实 false与转换失败时,应使用 ToBool。

func Bytes

func Bytes(v any) []byte

Bytes 将 v 转换为 字节切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToBytes 相同。

返回:

  • []byte: 转换成功后的字节切片;ToBytes 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToBytes。

func Duration

func Duration(v any) time.Duration

Duration 将 v 转换为 time.Duration 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToDuration 相同。

返回:

  • time.Duration: 转换成功后的time.Duration 值;ToDuration 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToDuration。

func Float32

func Float32(v any) float32

Float32 将 v 转换为 float32 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToFloat32 相同。

返回:

  • float32: 转换成功后的float32 值;ToFloat32 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToFloat32。

func Float64

func Float64(v any) float64

Float64 将 v 转换为 float64 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToFloat64 相同。

返回:

  • float64: 转换成功后的float64 值;ToFloat64 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToFloat64。

func Int

func Int(v any) int

Int 将 v 转换为 int 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToInt 相同。

返回:

  • int: 转换成功后的int 值;ToInt 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToInt。

func Int8

func Int8(v any) int8

Int8 将 v 转换为 int8 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToInt8 相同。

返回:

  • int8: 转换成功后的int8 值;ToInt8 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToInt8。

func Int16

func Int16(v any) int16

Int16 将 v 转换为 int16 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToInt16 相同。

返回:

  • int16: 转换成功后的int16 值;ToInt16 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToInt16。

func Int32

func Int32(v any) int32

Int32 将 v 转换为 int32 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToInt32 相同。

返回:

  • int32: 转换成功后的int32 值;ToInt32 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToInt32。

func Int64

func Int64(v any) int64

Int64 将 v 转换为 int64 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToInt64 相同。

返回:

  • int64: 转换成功后的int64 值;ToInt64 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToInt64。

func Map

func Map(v any) map[string]any

Map 将 v 转换为 map[string]any,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToMap 相同。

返回:

  • map[string]any: 转换成功后的map[string]any;ToMap 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToMap。

func MapStrAny

func MapStrAny(v any) map[string]any

MapStrAny 将 v 转换为 map[string]any,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToMapStrAny 相同。

返回:

  • map[string]any: 转换成功后的map[string]any;ToMapStrAny 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToMapStrAny。

func MapStrStr

func MapStrStr(v any) map[string]string

MapStrStr 将 v 转换为 map[string]string,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToMapStrStr 相同。

返回:

  • map[string]string: 转换成功后的map[string]string;ToMapStrStr 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToMapStrStr。

func Runes

func Runes(v any) []rune

Runes 将 v 转换为 rune 切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToRunes 相同。

返回:

  • []rune: 转换成功后的rune 切片;ToRunes 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToRunes。

func Slice

func Slice(v any) []any

Slice 将 v 转换为 any 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSlice 相同。

返回:

  • []any: 转换成功后的any 类型切片;ToSlice 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSlice。

func SliceAny

func SliceAny(v any) []any

SliceAny 将 v 转换为 any 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceAny 相同。

返回:

  • []any: 转换成功后的any 类型切片;ToSliceAny 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceAny。

func SliceAnyMap

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

SliceAnyMap 将 v 转换为 map[string]any 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceAnyMap 相同。

返回:

  • []map[string]any: 转换成功后的map[string]any 类型切片;ToSliceAnyMap 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceAnyMap。

func SliceFloat32

func SliceFloat32(v any) []float32

SliceFloat32 将 v 转换为 float32 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceFloat32 相同。

返回:

  • []float32: 转换成功后的float32 类型切片;ToSliceFloat32 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceFloat32。

func SliceFloat64

func SliceFloat64(v any) []float64

SliceFloat64 将 v 转换为 float64 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceFloat64 相同。

返回:

  • []float64: 转换成功后的float64 类型切片;ToSliceFloat64 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceFloat64。

func SliceInt

func SliceInt(v any) []int

SliceInt 将 v 转换为 int 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceInt 相同。

返回:

  • []int: 转换成功后的int 类型切片;ToSliceInt 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceInt。

func SliceInt32

func SliceInt32(v any) []int32

SliceInt32 将 v 转换为 int32 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceInt32 相同。

返回:

  • []int32: 转换成功后的int32 类型切片;ToSliceInt32 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceInt32。

func SliceInt64

func SliceInt64(v any) []int64

SliceInt64 将 v 转换为 int64 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceInt64 相同。

返回:

  • []int64: 转换成功后的int64 类型切片;ToSliceInt64 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceInt64。

func SliceMap

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

SliceMap 将 v 转换为 map[string]any 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceMap 相同。

返回:

  • []map[string]any: 转换成功后的map[string]any 类型切片;ToSliceMap 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceMap。

func SliceStr

func SliceStr(v any) []string

SliceStr 将 v 转换为 string 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceStr 相同。

返回:

  • []string: 转换成功后的string 类型切片;ToSliceStr 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceStr。

func SliceUint

func SliceUint(v any) []uint

SliceUint 将 v 转换为 uint 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceUint 相同。

返回:

  • []uint: 转换成功后的uint 类型切片;ToSliceUint 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceUint。

func SliceUint32

func SliceUint32(v any) []uint32

SliceUint32 将 v 转换为 uint32 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceUint32 相同。

返回:

  • []uint32: 转换成功后的uint32 类型切片;ToSliceUint32 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceUint32。

func SliceUint64

func SliceUint64(v any) []uint64

SliceUint64 将 v 转换为 uint64 类型切片,底层转换失败时返回 nil。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToSliceUint64 相同。

返回:

  • []uint64: 转换成功后的uint64 类型切片;ToSliceUint64 返回错误时为 nil。

调用方需要区分真实 nil与转换失败时,应使用 ToSliceUint64。

func String

func String(v any) string

String 将 v 转换为 string 值,底层转换失败时返回空字符串。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToString 相同。

返回:

  • string: 转换成功后的string 值;ToString 返回错误时为空字符串。

调用方需要区分真实空字符串与转换失败时,应使用 ToString。

func Time

func Time(v any) time.Time

Time 将 v 转换为 time.Time 值,底层转换失败时返回零值时间。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToTime 相同。

返回:

  • time.Time: 转换成功后的time.Time 值;ToTime 返回错误时为零值时间。

调用方需要区分真实零值时间与转换失败时,应使用 ToTime。

func ToBool

func ToBool(v any) (bool, error)

ToBool 将 v 按 gconv 规则转换为 bool。

参数:

  • v: 待转换的输入值;字符串、数字和布尔值等输入的解释规则遵循 gconv.Converter.Bool。

返回:

  • bool: 转换成功后的 bool 值。
  • error: v 无法转换为 bool 时返回 gconv 产生的错误;成功时为 nil。

func ToBytes

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

ToBytes 将 v 按 gconv 规则转换为字节切片。

参数:

  • v: 待转换的输入值;字符串、字节切片和可编码值等输入的处理规则遵循 gconv.Converter.Bytes。

返回:

  • []byte: 转换成功后的字节切片。
  • error: v 无法转换为字节切片时返回 gconv 产生的错误;成功时为 nil。

func ToDuration

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

ToDuration 将 v 按 gconv 规则转换为 time.Duration。

参数:

  • v: 待转换的输入值;时长字符串和数值等格式遵循 gconv.Converter.Duration。

返回:

  • time.Duration: 转换成功后的时长值。
  • error: v 无法解析为 time.Duration 时返回 gconv 产生的错误;成功时为 nil。

func ToFloat32

func ToFloat32(v any) (float32, error)

ToFloat32 将 v 按 gconv 规则转换为 float32。

参数:

  • v: 待转换的输入值;支持的数字、字符串等格式遵循 gconv.Converter.Float32。

返回:

  • float32: 转换成功后的 float32 值。
  • error: v 无法转换为 float32 时返回 gconv 产生的错误;成功时为 nil。

func ToFloat64

func ToFloat64(v any) (float64, error)

ToFloat64 将 v 按 gconv 规则转换为 float64。

参数:

  • v: 待转换的输入值;支持的数字、字符串等格式遵循 gconv.Converter.Float64。

返回:

  • float64: 转换成功后的 float64 值。
  • error: v 无法转换为 float64 时返回 gconv 产生的错误;成功时为 nil。

func ToInt

func ToInt(v any) (int, error)

ToInt 将 v 按 gconv 规则转换为 int。

参数:

  • v: 待转换的输入值;支持的源类型和格式遵循 gconv.Converter.Int。

返回:

  • int: 转换成功后的 int 值。
  • error: v 无法转换为 int 时返回 gconv 产生的错误;成功时为 nil。

func ToInt8

func ToInt8(v any) (int8, error)

ToInt8 将 v 按 gconv 规则转换为 int8。

参数:

  • v: 待转换的输入值;支持的源类型和格式遵循 gconv.Converter.Int8。

返回:

  • int8: 转换成功后的 int8 值。
  • error: v 无法转换为 int8 时返回 gconv 产生的错误;成功时为 nil。

func ToInt16

func ToInt16(v any) (int16, error)

ToInt16 将 v 按 gconv 规则转换为 int16。

参数:

  • v: 待转换的输入值;支持的源类型和格式遵循 gconv.Converter.Int16。

返回:

  • int16: 转换成功后的 int16 值。
  • error: v 无法转换为 int16 时返回 gconv 产生的错误;成功时为 nil。

func ToInt32

func ToInt32(v any) (int32, error)

ToInt32 将 v 按 gconv 规则转换为 int32。

参数:

  • v: 待转换的输入值;支持的源类型和格式遵循 gconv.Converter.Int32。

返回:

  • int32: 转换成功后的 int32 值。
  • error: v 无法转换为 int32 时返回 gconv 产生的错误;成功时为 nil。

func ToInt64

func ToInt64(v any) (int64, error)

ToInt64 将 v 按 gconv 规则转换为 int64。

参数:

  • v: 待转换的输入值;支持的源类型和格式遵循 gconv.Converter.Int64。

返回:

  • int64: 转换成功后的 int64 值。
  • error: v 无法转换为 int64 时返回 gconv 产生的错误;成功时为 nil。

func ToMap

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

ToMap 将 v 按 gconv 规则转换为 map[string]any。

参数:

  • v: 待转换的输入值;结构体、map 和 JSON 对象字符串等输入的处理规则遵循 gconv.Converter.Map。

返回:

  • map[string]any: 转换成功后的 map[string]any。
  • error: v 或其中键值无法按 Map 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToMapStrAny

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

ToMapStrAny ToMapStrAny 是 ToMap 的等价入口,将 v 按 gconv 规则转换为 map[string]any。

参数:

  • v: 待转换的输入值;结构体、map 和 JSON 对象字符串等输入的处理规则遵循 gconv.Converter.Map。

返回:

  • map[string]any: 转换成功后的 map[string]any。
  • error: v 或其中键值无法按 Map 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToMapStrStr

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

ToMapStrStr 将 v 按 gconv 规则转换为 map[string]string。

参数:

  • v: 待转换的输入值;结构体、map 和 JSON 对象字符串等输入的处理规则遵循 gconv.Converter.MapStrStr。

返回:

  • map[string]string: 转换成功后的 map[string]string。
  • error: v 或其中键值无法按 MapStrStr 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToRunes

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

ToRunes 将 v 按 gconv 规则转换为 rune 切片。

参数:

  • v: 待转换的输入值;字符串和其他可转换输入的处理规则遵循 gconv.Converter.Runes。

返回:

  • []rune: 转换成功后的 rune 切片。
  • error: v 无法转换为 rune 切片时返回 gconv 产生的错误;成功时为 nil。

func ToSlice

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

ToSlice ToSlice 是 ToSliceAny 的等价入口,将 v 按 gconv 规则转换为any 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceAny。

返回:

  • []any: 转换成功后的any 类型切片。
  • error: v 或其中元素无法按 SliceAny 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceAny

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

ToSliceAny 将 v 按 gconv 规则转换为任意类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceAny。

返回:

  • []any: 转换成功后的任意类型切片。
  • error: v 或其中元素无法按 SliceAny 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceAnyMap

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

ToSliceAnyMap 将 v 按 gconv 规则转换为map[string]any 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceMap。

返回:

  • []map[string]any: 转换成功后的map[string]any 类型切片。
  • error: v 或其中元素无法按 SliceMap 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceFloat32

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

ToSliceFloat32 将 v 按 gconv 规则转换为float32 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceFloat32。

返回:

  • []float32: 转换成功后的float32 类型切片。
  • error: v 或其中元素无法按 SliceFloat32 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceFloat64

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

ToSliceFloat64 将 v 按 gconv 规则转换为float64 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceFloat64。

返回:

  • []float64: 转换成功后的float64 类型切片。
  • error: v 或其中元素无法按 SliceFloat64 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceInt

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

ToSliceInt 将 v 按 gconv 规则转换为int 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceInt。

返回:

  • []int: 转换成功后的int 类型切片。
  • error: v 或其中元素无法按 SliceInt 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceInt32

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

ToSliceInt32 将 v 按 gconv 规则转换为int32 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceInt32。

返回:

  • []int32: 转换成功后的int32 类型切片。
  • error: v 或其中元素无法按 SliceInt32 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceInt64

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

ToSliceInt64 将 v 按 gconv 规则转换为int64 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceInt64。

返回:

  • []int64: 转换成功后的int64 类型切片。
  • error: v 或其中元素无法按 SliceInt64 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceMap

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

ToSliceMap 将 v 按 gconv 规则转换为map[string]any 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceMap。

返回:

  • []map[string]any: 转换成功后的map[string]any 类型切片。
  • error: v 或其中元素无法按 SliceMap 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceStr

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

ToSliceStr 将 v 按 gconv 规则转换为string 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceStr。

返回:

  • []string: 转换成功后的string 类型切片。
  • error: v 或其中元素无法按 SliceStr 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceUint

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

ToSliceUint 将 v 按 gconv 规则转换为uint 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceUint。

返回:

  • []uint: 转换成功后的uint 类型切片。
  • error: v 或其中元素无法按 SliceUint 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceUint32

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

ToSliceUint32 将 v 按 gconv 规则转换为uint32 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceUint32。

返回:

  • []uint32: 转换成功后的uint32 类型切片。
  • error: v 或其中元素无法按 SliceUint32 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToSliceUint64

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

ToSliceUint64 将 v 按 gconv 规则转换为uint64 类型切片。

参数:

  • v: 待转换的输入值;切片、数组、JSON 数组字符串等输入的处理规则遵循 gconv.Converter.SliceUint64。

返回:

  • []uint64: 转换成功后的uint64 类型切片。
  • error: v 或其中元素无法按 SliceUint64 规则转换时返回 gconv 产生的错误;成功时为 nil。

func ToString

func ToString(v any) (string, error)

ToString 将 v 按 gconv 规则转换为 string。

参数:

  • v: 待转换的输入值;基础类型、结构体、map 等输入的字符串化规则遵循 gconv.Converter.String。

返回:

  • string: 转换成功后的字符串。
  • error: v 无法转换为 string 时返回 gconv 产生的错误;成功时为 nil。

func ToStruct

func ToStruct(v any, out any) error

ToStruct 将 v 按 gconv 规则填充到 out 指向的结构体。

参数:

  • v: 待转换的输入值;map、结构体和 JSON 对象字符串等输入的处理规则遵循 gconv.Converter.Struct。
  • out: 接收转换结果的结构体指针,必须为非 nil 指针。

返回:

  • error: out 不是有效目标指针、字段无法转换或 v 无法映射到目标结构体时返回 gconv 产生的错误;成功时为 nil。

func ToStructs

func ToStructs(v any, out any) error

ToStructs 将 v 按 gconv 规则填充到 out 指向的结构体切片。

参数:

  • v: 待转换的输入值;切片、数组和 JSON 数组字符串等输入的处理规则遵循 gconv.Converter.Structs。
  • out: 接收转换结果的结构体切片指针,必须为非 nil 指针。

返回:

  • error: out 不是有效目标指针、元素字段无法转换或 v 无法映射到目标切片时返回 gconv 产生的错误;成功时为 nil。

func ToTime

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

ToTime 将 v 按 gconv 规则转换为 time.Time。

参数:

  • v: 待转换的输入值;数值时间戳和可解析时间字符串等格式遵循 gconv.Converter.Time。

返回:

  • time.Time: 转换成功后的时间值。
  • error: v 无法解析为 time.Time 时返回 gconv 产生的错误;成功时为 nil。

func ToUint

func ToUint(v any) (uint, error)

ToUint 将 v 转换为 uint,负数输入按 0 处理。

参数:

  • v: 待转换的输入值;本函数会先按 gconv 规则解析为 int64。

返回:

  • uint: 转换成功后的 uint 值;v 为负数或负数字符串时为 0,非负值按 Go 从 int64 到目标无符号类型的转换规则处理。
  • error: v 无法解析为 int64 时返回 gconv 产生的错误;负数输入本身不产生错误。

本函数不额外做目标无符号类型的上界校验。

func ToUint8

func ToUint8(v any) (uint8, error)

ToUint8 将 v 转换为 uint8,负数输入按 0 处理。

参数:

  • v: 待转换的输入值;本函数会先按 gconv 规则解析为 int64。

返回:

  • uint8: 转换成功后的 uint8 值;v 为负数或负数字符串时为 0,非负值按 Go 从 int64 到目标无符号类型的转换规则处理。
  • error: v 无法解析为 int64 时返回 gconv 产生的错误;负数输入本身不产生错误。

本函数不额外做目标无符号类型的上界校验。

func ToUint16

func ToUint16(v any) (uint16, error)

ToUint16 将 v 转换为 uint16,负数输入按 0 处理。

参数:

  • v: 待转换的输入值;本函数会先按 gconv 规则解析为 int64。

返回:

  • uint16: 转换成功后的 uint16 值;v 为负数或负数字符串时为 0,非负值按 Go 从 int64 到目标无符号类型的转换规则处理。
  • error: v 无法解析为 int64 时返回 gconv 产生的错误;负数输入本身不产生错误。

本函数不额外做目标无符号类型的上界校验。

func ToUint32

func ToUint32(v any) (uint32, error)

ToUint32 将 v 转换为 uint32,负数输入按 0 处理。

参数:

  • v: 待转换的输入值;本函数会先按 gconv 规则解析为 int64。

返回:

  • uint32: 转换成功后的 uint32 值;v 为负数或负数字符串时为 0,非负值按 Go 从 int64 到目标无符号类型的转换规则处理。
  • error: v 无法解析为 int64 时返回 gconv 产生的错误;负数输入本身不产生错误。

本函数不额外做目标无符号类型的上界校验。

func ToUint64

func ToUint64(v any) (uint64, error)

ToUint64 将 v 转换为 uint64,负数输入按 0 处理。

参数:

  • v: 待转换的输入值;本函数会先按 gconv 规则解析为 int64。

返回:

  • uint64: 转换成功后的 uint64 值;v 为负数或负数字符串时为 0,非负值按 Go 从 int64 到目标无符号类型的转换规则处理。
  • error: v 无法解析为 int64 时返回 gconv 产生的错误;负数输入本身不产生错误。

本函数不额外做目标无符号类型的上界校验。

func Uint

func Uint(v any) uint

Uint 将 v 转换为 uint 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToUint 相同。

返回:

  • uint: 转换成功后的uint 值;ToUint 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToUint。

func Uint8

func Uint8(v any) uint8

Uint8 将 v 转换为 uint8 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToUint8 相同。

返回:

  • uint8: 转换成功后的uint8 值;ToUint8 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToUint8。

func Uint16

func Uint16(v any) uint16

Uint16 将 v 转换为 uint16 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToUint16 相同。

返回:

  • uint16: 转换成功后的uint16 值;ToUint16 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToUint16。

func Uint32

func Uint32(v any) uint32

Uint32 将 v 转换为 uint32 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToUint32 相同。

返回:

  • uint32: 转换成功后的uint32 值;ToUint32 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToUint32。

func Uint64

func Uint64(v any) uint64

Uint64 将 v 转换为 uint64 值,底层转换失败时返回 0。

参数:

  • v: 待转换的输入值;支持的源类型和格式与 ToUint64 相同。

返回:

  • uint64: 转换成功后的uint64 值;ToUint64 返回错误时为 0。

调用方需要区分真实 0与转换失败时,应使用 ToUint64。

Types

This section is empty.

Jump to

Keyboard shortcuts

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