【开源自荐】Golang 简单易用的反射工具库, 支持设置嵌套结构体字段, 函数调用, etc.

2023-12-13 979 views
6
推荐项目
  • 类别:Go
  • 项目标题:Golang 简单易用的反射工具库, 支持设置嵌套结构体字段, 函数调用, etc.
  • 项目描述: 在实际业务开发中, 经常需要用到反射的能力, 比如结合远程配置动态修改结构体的字段, 这样无需发布即可实现功能变更, 再比如拓展插件的场景, 使用表驱动的方式调用一些异构的函数(无法抽象为接口)等. 这里对常用的操作进行了getter, setter的封装, 并增强了一些能力, 比如支持设置多层嵌套结构体的字段, 针对结构体指针自动创建等.
  • 亮点:

    • 设置结构体字段值, 支持通过路径比如A.B.C设置嵌套结构体字段的值

    • 获取结构体字段的值, 类型, Tag 等.

    • 遍历结构体所有字段, 支持 select 模式和 range 模式, 如果使用深度遍历方法比如 FieldsDeep 将遍历所有嵌套结构.

    • 函数调用, 方法调用, 支持可变参数.

    • 新建实例, 判断接口实现等等.

  • 示例代码:(可选)

    
    person := &Person{
    Name: "John",
    Age:  20,
    Country: Country{
        ID:   0,
        Name: "Perk",
    },
    }

_ = SetEmbedField(person, "Country.ID", 1)

// Perk's ID: 1 fmt.Printf("Perk's ID: %d \n", person.Country.ID)



- 截图:(可选)gif/png/jpg
<img width="913" alt="image" src="https://github.com/521xueweihan/HelloGitHub/assets/8148137/dd5095ab-fa32-404d-821d-b6e21c001274">

- 后续更新计划:

回答