基本介绍
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包在整数、浮点数、布尔值、字符串等类型转换中的应用。提供了简单易懂的代码示例,展示了如何在实际开发中使用这些转换函数进行高效的类型转换操作。
📄️ 类型转换-Map转换
使用GoFrame框架中的gconv.Map方法实现类型转换,包括将任意map或struct/*struct类型转换为map[string]interface{}类型。支持属性标签和自定义标签,并可通过MapDeep方法实现递归转换,解析出嵌套对象的详细结构,适合多层次数据处理。
📄️ 类型转换-Struct转换
使用GoFrame的gconv模块进行结构体转换,包括从各种数据类型到结构体的映射、自动创建对象、递归转换以及映射规则等实用功能,帮助开发者提升编码效率和项目维护能力。
📄️ 类型转换-Structs转换
GoFrame框架中的类型转换方法,主要聚焦于使用Structs方法实现对struct数组的转换。Structs方法与Struct方法类似,并在其基础上扩展了对struct数组的支持。文中还提供了具体的代码示例,演示了如何在实际应用中使用这一功能。
📄️ 类型转换-Scan转换
了解如何使用GoFrame框架中强大的Scan方法实现任意参数到struct、struct数组、map、map数组的自动识别转换。本文介绍Scan方法的定义及其在Go语言中的应用,同时提供多个编程示例帮助快速理解和掌握此功能,为开发者提供高效便捷的类型转换解决方案。
📄️ 类型转换-Converter特性
从GoFrame框架v2.6.2版本开始的转换组件新增的Converter特性,允许开发者自定义类型转换逻辑。通过示例代码展示了如何使用Converter特性进行自定义数据结构和别名类型的转换方法注册和应用,以及如何借助gconv.Scan和gconv.ConvertWithRefer方法处理这些类型的转换。
📄️ 类型转换-UnmarshalValue
使用GoFrame框架中的gconv模块实现类型转换,尤其是通过UnmarshalValue接口实现自定义转换。详细探讨了反射特性在复杂类型转换中的应用及其性能影响,并提供了多个代码示例,包括自定义结构体转换和TCP数据解包,帮助开发者优化转换效率。
📄️ 类型转换-性能测试
通过性能基准测试对GoFrame框架中的基本类型转换使用进行了详细的介绍和分析。通过多个不同的数据类型转换性能测试,展示了其在不同条件下的效率表现,为开发者在使用GoFrame框架时提供优化参考和指导。