GoLang 如何动态给结构体添加字段

moriarty · 2016-11-26 17:07:17 · 15492 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2016-11-26 17:07:17 的主题,其中的信息可能已经有所发展或是发生改变。

比如已有一个结构体: type T struct{ }

t := T{}

如何动态给T类型或者t对象添加字段。比如代码执行阶段,我想动态添加两个类型为字符串的字段,名称为Name和Phone,甚至可以动态添加Tag? 我查了一下reflect包,但是没找到方法。请各位大侠不吝赐教!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

15492 次点击  
加入收藏 微博
4 回复  |  直到 2019-10-04 12:26:58
cnfree2000
cnfree2000 · #1 · 8年之前

你牛逼了,这类强类型语言,修改了这些信息,就是一个新的类型了,和老的类型没有关系,应该是不可能的。Java里面是通过ASM动态修改二进制这类非法手段编码产生一个新的class,GoLang都编译成exe了,你怎么搞?

jokeyone
jokeyone · #2 · 8年之前

动态添加字段做不到。如果只是想存储一些字符串信息,也许你可以给结构体加一个map[string]string去存储。

moriarty
moriarty · #3 · 8年之前

好吧,是我想多了。动态语言玩多了,就是容易胡思乱想。。。

chjiyun
chjiyun · #4 · 5年之前

你的意思是一个属性的类型既可以是数组或map这种动态类型吧,静态语言好像做不到吧,不太灵活

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传