跳到主要内容
版本:2.10.x(Latest)

基本介绍

GoFrame 框架提供了非常强大易用的类型转换包 gconv,可以实现将常用数据类型转换为指定的数据类型,对常用基本数据类型之间的无缝转换,同时也支持任意类型到 struct 对象的转换。由于 gconv 模块内部大量优先使用了断言而非反射,因此执行的效率非常高。

注意事项:

gconv 包的主要目标是提供简便且高效的类型转换功能,开发者应当注意转换的输入参数以及当前使用的业务场景,部分方法如果转换失败,那么方法并不会返回错误原因,也不会产生 panic,而是直接以转换失败后的数值返回。因此,开发者往往需要结合返回值以及当前使用的业务场景来综合判断结果的正确性。

使用方式:

import "github.com/gogf/gf/v2/util/gconv"

接口文档

https://pkg.go.dev/github.com/gogf/gf/v2/util/gconv

方法列表:

方法列表可能滞后于代码,详情请查看接口文档。

相关文档

📄️ 类型转换-基本类型

全面介绍`GoFrame`框架`gconv`包的基本类型转换功能。讲解如何使用`gconv`进行整型(`Int`、`Int8`、`Int16`等)、无符号整型(`Uint`系列)、浮点型(`Float32`、`Float64`)、布尔型、字符串以及数组切片类型的转换。通过完整代码示例展示各种转换方法的使用和输出结果。特别说明数字转换方法支持自动识别十六进制和八进制字符串,如`0x`开头的十六进制数字转换功能。

📄️ 类型转换-Converter

详细介绍`GoFrame`框架`v2.9`版本新增的`gconv.Converter`类型转换接口,提供更严谨、更灵活的类型转换机制。支持创建转换对象实现严格的类型检查和错误处理,转换失败时返回错误而非零值。包含整数、浮点数、时间、结构体、Map、切片等多种类型的转换能力,支持注册自定义转换函数,可创建多个独立配置的转换器实例。相比传统`gconv`包方法,适合对数据准确性要求高的场景,提供一致的API设计和完整的错误处理机制。

📄️ 类型转换-自定义类型转换

全面介绍`GoFrame`框架`gconv`组件的自定义类型转换功能。讲解两种注册机制:`RegisterTypeConverterFunc`用于注册特定类型间的转换函数,支持结构体转换和别名类型转换;`RegisterAnyConverterFunc`用于注册通用转换函数。详细说明转换函数的签名要求,输入参数必须为非指针对象以保证安全性。通过多个完整代码示例展示如何实现结构体间转换、别名类型转换等场景,包括错误处理和嵌套结构转换。