go - Golang CLI 眼镜蛇计数标志
问题描述
我想定义一个 CLI 标志来计算它出现的次数。
例如,让我们--verbose
用它的简写来定义标志-v
:
# verbose value should be 0
> myCmd
# verbose value should be 1
> myCmd -v
# verbose value should be 2
> myCmd -vv
# ...
有没有内置的方法来实现它?
解决方案
来自https://github.com/spf13/cobra:“标志功能由 pflag 库提供”
pflag 库中有几个用于计数标志的选项,如下所示:https ://godoc.org/github.com/spf13/pflag#Count
可以提供一个跨越许多文件的长示例,但关键是使用这样的东西(在这种情况下,“run”是 cobra 命令):
runCmd.Flags().CountP("verbose", "v", "counted verbosity")
要稍后在 runCmd 的 Run 函数中检索该值,请使用以下命令:
verbosity, _ := cmd.Flags().GetCount("verbose")
可变详细程度将是一个包含重复次数的 int。
在该示例中,我使用了 pflag 的 CountP 版本,它允许提供长标志名称和短标志名称(我认为这是您希望找到的)。
推荐阅读
- python - 熊猫添加更高级别的列多索引
- java - 如何不持久化实体 jpa?
- c++ - 如何从标准输入打印出前 4 个字节
- api - How to store text and formatting separately?
- javascript - Creating my own bind() function using apply() in Javascript
- javascript - React Native firebase 身份验证处理
- android-studio - Flutter, set android SDK path in ubuntu
- android - Could not find com.github.MasayukiSuda:Mp4Composer-android:v0.3.9
- javascript - Why are clones moving but not original?
- c++ - Eigen RowVector 超出范围会产生“运行时检查失败 #2 - 变量 X 周围的堆栈已损坏”