基本介绍
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
方法列表:
方法列表可能滞后于代码,详情请查看接口文档。
相关文档
📄️ 类型转换-基本类型
常用基本类型的转换方法比较简单,我们这里使用一个例子来演示转换方法的使用及效果。
📄️ 类型转换-Map转换
gconv.Map 支持将任意的 map 或 struct/ struct 类型转换为常用的 map[string]interface{} 类型。当转换参数为 struct/ struct 类型时,支持自动识别 struct 的 c/gconv/json 标签,并且可以通过 Map 方法的第二个参数 tags 指定自定义的转换标签,以及多个标签解析的优先级。如果转换失败,返回 nil。
📄️ 类型转换-Struct转换
项目中我们经常会遇到大量 struct 的使用,以及各种数据类型到 struct 的转换/赋值(特别是 json/ xml/各种协议编码转换)。为提高编码及项目维护效率, gconv 模块为各位开发者带来了极大的福利,为数据解析提供了更高的灵活度。