假设我的程序中有一个只打印正数的标志:c.PersistentFlags().IntVar(&SomeFlag, optionSomeFlag, 0, "do something (range: x-y)")
默认值是0,所以如果用户不切换标志,什么也不打印。我怎样才能使标志接受参数,但有一个默认值本身?例如,如果默认值是5./program --someflag
输出将为5
但如果我知道./program --someflag=1
输出将为1
我试着按照Cobra的用户指南操作,并期待一种命令类型,它只允许我在用户触发标志时指定默认值,而不是完全触发。我可能误解了这一点,或者错过了一些东西。
1条答案
按热度按时间qoefvg9y1#
我计划通过自己解析
os.Args[1:]
来查找没有参数的标志,并将默认值插入到参数的修改副本中,然后将修改副本传递给rootCommand.SetArgs
,从而解决这个限制。这感觉有点古怪,很难维持,但我看不到其他的解决办法。