如果用 tag,每个字段都要重写一遍,太麻烦了 有没有默认就是小写的方式
![]() | 1 6IbA2bj5ip3tK49j 2019-04-30 10:21:52 +08:00 没有,脑子一拍,要省去 private 和 public,替开发人员减轻思维负担。 |
![]() | 2 sunjourney 2019-04-30 10:33:50 +08:00 code gen 用自制 DSL 写 go 是基本操作哈 |
![]() | 3 sunjourney 2019-04-30 10:36:10 +08:00 提供一个思路。套一个接口输出的中间,先用 JSON parse 成 map,替换 key,序列化。 |
![]() | 4 ahmcsxcc OP @sunjourney #3 这也太麻烦了,还不如直接写 tag |
5 hmoe 2019-04-30 10:40:21 +08:00 ![]() |
![]() | 6 sunjourney 2019-04-30 10:43:33 +08:00 @ahmcsxcc #4 找轮子啊,应该有现成的 json encoder 吧,换掉内建的 |
![]() | 7 |
![]() | 8 hash 2019-04-30 10:45:09 +08:00 没有,估计 Google 内部工具链很全,这种模板代码都是机器生成而不是人来写. |
![]() | 10 faceair 2019-04-30 10:52:05 +08:00 用 jsoniter 的 NamingStrategy 插件 示例 https://github.com/json-iterator/go/blob/0ff49de124c6f76f8494e194af75bde0f1a49a29/extra/naming_strategy_test.go#L27 |
![]() | 11 ahmcsxcc OP |
![]() | 12 WilliamYang 2019-04-30 12:26:44 +08:00 其实 Goland 里搜索插件, 有添加 tags 的插件的, 可以是 snake_case 或 camelCase |
![]() | 13 ahmcsxcc OP @WilliamYang #12 这还是用 tag 啊 |
14 zzzzzzzzzp 2019-04-30 12:59:04 +08:00 https://github.com/fatih/gomodifytags 这个挺好使的,vim 和 vscode 都用的这个 |
![]() | 15 ahmcsxcc OP @zzzzzzzzzp #14 哥啊,这还是用 tag |
![]() | 16 liuxey 2019-04-30 13:14:37 +08:00 我也觉得自定义 DSL 是用 Go 的基本技能,不少框架都有,说简单点就是 Code Generator |