文档章节

【go工具】golang tag 之 gomodifytags

mickelfeng
 mickelfeng
发布于 02/20 17:51
字数 637
阅读 12
收藏 1

链接:gomodifytags原文链接

gomodifytags 

是go工具,用来修改/更新struct字段的标签tag.使用gomodifytags可以很方便的update/add/delete struct的字段标签。你可以很方便的增加新的标签,更新已经存在的标签或者移除已经存在的标签。也允许你增加和移除标签选项。它的目的在于被编辑器使用,但是也有模式从终端运行它。

默认按照下划线标识的tag.

安装:

go get github.com/fatih/gomodifytags

写好结构体,如下:

type Server struct {
	Name string
	Port int
	EnableLogs bool
	BaseDomain string
	Credentials struct{
		UserName string
		Password string
	}
}

在goland终端cd到上面的结构体所在的目录,执行以下命令:

gomodifytags -file go_gomodifytags.go -struct Server -add-tags json

默认情况下,每次改变都会被标准输出,因此运行这个命令是安全的并且看到运行的结果。如果你想永久有效,执行以下命令:

$ gomodifytags -file demo.go -struct Server -add-tags json -w

 可以同时添加多个tag:

如下指令会同时添加json和xml标签:

gomodifytags -file demo.go -struct Server -add-tags json,xml

如果要使用驼峰标识,使用如下命令:

gomodifytags -file demo.go -struct Server -add-tags json,xml -transform camelcase

注意:如果使用了永久模式的tag:

gomodifytags -file demo.go -struct Server -add-tags json -w

那么后面再设置为驼峰标识就会无效了。

可以为每个字段设置静态值:

gomodifytags -file demo.go -struct Server -add-tags json,validate:gt=1,scope:read-only

为每个字段增加tag可选项:

gomodifytags -file demo.go -struct Server -add-tags json -add-options json=omitempty

注意,如果tag已经存在了,就没必要再用 -add-tags

移除标签和可选项

要移除xml标签,使用如下指令:

gomodifytags -file demo.go -struct Server -remove-tags xml

同时移除多个标签:

gomodifytags -file demo.go -struct Server -remove-tags xml,json

一次性移除所有的标签:

gomodifytags -file demo.go -struct Server -clear-tags

移除标签可选项:

gomodifytags -file demo.go -struct Server -remove-options json=omitempty

同时移除多个标签可选项:

gomodifytags -file demo.go -struct Server -remove-options json=omitempty,xml=cdata

移除所有的标签可选项: 

gomodifytags -file demo.go -struct Server -clear-options

基于line的标签改变

移除某些line的标签:

gomodifytags -file demo.go -line 8,11 -clear-tags xml

  在特定的某些行增加tag:(在第5行-第7行增加bson标签)

gomodifytags -file demo.go -line 5,7 -add-tags bson

 

本文转载自:https://blog.csdn.net/u010918487/article/details/80194756

共有 人打赏支持
mickelfeng

mickelfeng

粉丝 235
博文 2752
码字总数 596619
作品 0
成都
高级程序员
私信 提问
Go语言开发工具 - LiteIDE

LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。 主要特点 核心功能 * 系统环境管理 * MIME类型管理 * 可配置编译命令 * 支持文件搜索替换和恢复 * 快速打开文件、符号和命令...

七叶
2012/06/20
0
19
LiteIDE X33.1 发布,Go 语言开发工具

Go 语言开发工具 LiteIDE X33.1 正式发布。 新版本对菜单进行调整和规范,新增了工具菜单,编辑菜单保持可见,重命名了部分工具窗口。 修复了编辑器内查找功能的全文替换错误, 对快速打开文...

七叶
2017/12/12
2.3K
15
在线 Golang 文档阅读--GoHub

GoHub 基于 Github Pages 提供在线 Golang 文档阅读.。特征: 便捷的文档项目组织 Go Doc API 翻译双语对照阅读 渲染 Markdown 或更多编程语言文档 对 GoHub 有任何建议或问题, 请至 GoHub ...

喻恒春
2015/05/29
2.9K
0
用 Go 语言编写一门工具的终极指南

我以前构建过一个工具,以让生活更轻松。这个工具被称为:gomodifytags,它会根据字段名称自动填充结构体的标签字段。示例如下: (在 vim-go 中使用 gomodifytags 的一个用法示例) 使用这样...

oschina
2017/10/16
3.6K
5
golang Go语言struct tag介绍

一、tag说明 先介绍一下(反引号):反引号用来创建 原生的字符串字面量 ,这些字符串可能由多行组成(不支持任何转义序列),原生的字符串字面量多用于书写多行消息、HTML以及正则表达式。 在处...

hgqxjj
2018/08/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python+Appium自动化测试环境搭建

1.Android SDK 下载SDK并配置系统环境变量ANDROID_HOME。 2.Appium 2.1 直接下载安装 官网下载安装appium-desktop-setup.exe。 2.2 通过npm下载安装 appium本质是一个nodejs库所以要先安装n...

维他ViTa
36分钟前
2
0
【git命令】git远程操作相关命令(remote 、push、fetch 、pull)

git系统图 git remote 为了便于管理,Git要求每个远程主机都必须指定一个主机名。为了便于管理,Git要求每个远程主机都必须指定一个主机名。 git remote【查看创库名】 git remote 在我们c...

echojson
45分钟前
2
0
MacOS安装单机版HBase

MacOS安装HBase,必然是用于测试了,从简入手、从简配置。 直接通过brew安装即可: brew install hbase 成功安装后,验证是否成功,如果不出意外的话,应该有如下输出: RippleMBP:~ userna...

RippleChan
今天
3
0
linux下oracle随操作系统启动而启动

大家一定还记得,我们在windows下安装oracle后,重起windows,数据库会自动启动,但在linux下,如果我们重起了操作系统, 就会发现数据库需要手工去输入,这个本来有好处,让dba知道操作系统已经重起...

突突突酱
今天
4
0
nacos之springboot

本地操作系统:ubuntu18,我使用docker的方式启动nacos服务 docker image方式启动nacos 在docker hub上可以搜到nacos-server List-1.1 拉去最新的版本 mjduan@mjduan-ubuntu:/opt/software$ ...

克虏伯
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部