为了账号安全,请及时绑定邮箱和手机立即绑定

go-Cobra PersistentFlags 和 Flags 有什么区别?

go-Cobra PersistentFlags 和 Flags 有什么区别?

Go
慕容708150 2022-06-27 09:36:29
我试图弄清楚 Go-Cobra 中 PersistentFlags 和 Flags 之间的区别是什么,以及我们应该何时使用它们中的每一个。我读过这个,但我不明白。
查看完整描述

2 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

使用 Cobra 时,您定义了一个顶级命令:


prog

这个顶级命令有子命令。例如,假设我们有三个子命令init、start和stop。


prog init [-i]         # initialize, but don't start anything: -i means ignore

prog start [-f] [-q]   # after init, start: -f=fast, -q=quiet

prog stop [-f]         # stop: -f=force

该-i标志仅用于init,因此我们-i在子命令中添加一个标志init。


该-q标志仅用于start,因此我们-q在子命令中添加一个标志start,依此类推。


现在我们想为每个命令添加一个调试模式。我们可以进入每个命令并添加一个--debug标志......但我们也可以为根命令设置一个持久标志。这个持久标志现在将在每个子命令中可用。


如果您有一个包含子子命令的子命令,则可以在子命令中设置一个持久标志,以使该标志出现在每个子子命令中,依此类推。


查看完整回答
反对 回复 2022-06-27
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

Flags返回适用于此命令的完整 FlagSet(在此处和所有父级声明的本地和持久性)。

PersistentFlags返回当前命令中专门设置的持久化标志集。


查看完整回答
反对 回复 2022-06-27
  • 2 回答
  • 0 关注
  • 823 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号