简介
flagflagflag
- 不显示支持短选项。当然上一篇文章中也提到过可以通过将两个选项共享同一个变量迂回实现,但写起来比较繁琐;
TypeTypeVar
bool/int/uint/stringtime.Duration
go-flags
go-flagsflag
- 支持短选项(-v)和长选项(--verbose);
-aux
- 同一个选项可以设置多个值;
- 支持所有的基础类型和 map 类型,甚至是函数;
- 支持命名空间和选项组;
- 等等。
go-flags
快速开始
go-flags
由于是第三方库,使用前需要安装,执行下面的命令安装:
import
完整示例代码如下:
go-flags
shortlongdescription---
- 声明选项变量;
go-flags
编译、运行代码(我的环境是 Win10 + Git Bash):
短选项:
长选项:
Verbose-v--verbosetrue
多个短选项:
多个长选项:
短选项 + 长选项:
短选项合写:
基本特性
支持丰富的数据类型
go-flagsflag
int/int8/int16/int32/int64uint/uint8/uint16/uint32/uint64float32/float64boolstring
string
- 函数类型。
如果字段是基本类型的切片,基本解析流程与对应的基本类型是一样的。切片类型选项的不同之处在于,遇到相同的选项时,值会被追加到切片中。而非切片类型的选项,后出现的值会覆盖先出现的值。
下面来看一个示例:
PtrStringSlice[]*stringgo-flags
--pstrslice
Call--call
go-flagsstringmap:key:value--intmap
常用设置
go-flagsrequireddefault
requiredErrRequired
defaultrequired
看下面示例:
defaultDefaultrequired
高级特性
选项分组
--help
输出的帮助信息中,也是按照我们设定的分组显示了,便于查看。
子命令
go-flagsgo versiongo buildgo rungit statusgit commitversion/build/run/status/commitgo-flags
go-flagsCommander
---go-flagscommand
math
接下来看看如何使用:
*/
其他
go-flags/v/verbose
参考
我
欢迎关注我的微信公众号【GoUpUp】,共同学习,一起进步~
本文由博客一文多发平台 OpenWrite 发布!