码迷,mamicode.com
首页 > 其他好文 > 详细

[golang]反射的用处--代码自动生成

时间:2016-02-18 13:51:53      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

背景:

go语言处理db、json的时候,具体代码的变量定义和db字段、json输出的时候可能不一样。

这个时候,我们需要用tag的方式来进行定义。

例如:

type MyStruct struct {
     Name      string `json:"name"`
     MaxHeight int    `json:"max_height"`
}

 

如果字段或结构体非常多的话,有十几二十几个,就非常的麻烦。

因此,就利用golang的反射,做了一个小工具来自动生成,具体使用如下:

//你的结构体定义
type MyStruct struct {
     Name      string
     MaxHeight int
}

var s MyStruct
//为结构体中的变量,生成json的tag
//把单词用下划线连接(通过大写字母来区分)
fmt.Prinln( tool.ProduceStructTag(s, "json"))

这样就会得到最上面带tag的代码。

这个工具可以进一步改进,根据自生的框架做通用的代码生成。定义好结构体和接口,然后 duang 的一下生成代码,只需要写业务逻辑了。

具体实现参考:https://github.com/AsGz/tools/blob/master/produce_struct_tag.go

 

[golang]反射的用处--代码自动生成

标签:

原文地址:http://www.cnblogs.com/zhangqingping/p/5197814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!