多个相同结构体能实例能不能实现只反射一次获取到一个 unbond method 后续调用

2023-05-13 21:26:59 +08:00
 lolizeppelin
想对多个结构体都调用相同的方法
但是对所有相同结构体都要做反射性能也有影响
但似乎没法获取到 unbond method

或者说我直接说需求

用 ent orm
现在想把两个相同的库合并到第三个库
我想到的做法是反射 Creae 结构体获取到 Set 字段设置所有属性然后 bulk insert

有没有更好的办法
1189 次点击
所在节点    Go 编程语言
6 条回复
Nazz
2023-05-13 22:02:22 +08:00
相同的方法可以用接口
lolizeppelin
2023-05-13 22:12:46 +08:00
@Nazz

ent 代码是动态生成的
leonshaw
2023-05-13 23:18:30 +08:00
是这样?
reflect.TypeOf(foo).Method(0).Func.Call([]reflect.Value{reflect.ValueOf(bar)})
lolizeppelin
2023-05-14 08:09:12 +08:00
@leonshaw
对对对, 我傻掉了老是盯着 reflect.ValueOf
zhengjian
2023-05-15 00:07:12 +08:00
或许可以尝试一下使用自定义模板生成你需要的代码:

https://entgo.io/zh/docs/templates
lolizeppelin
2023-05-17 23:35:26 +08:00
@zhengjian
我也是这样想的 但是模板看半天一头雾水...没用过 golang 的模板

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/939790

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX