Go的新手,并且有一个基本的概念问题(我认为)......
尝试使用github.com/jessevdk/go-flags并让它主要工作。 --help和whatnot工作正常,标志正在传递等等。
我需要了解是通过标志设置选项还是使用提供的默认值通过go-flags解析器设置。看来go-flags有一个" IsSet"功能,但我不知道如何引用它。假定:
var opts struct {
Port int `short:"p" long:"Port" description:"IP port" default:"1111"
}
_, err := flags.Parse(&opts)
我可以通过" opts.Port"来引用该值,但是如何通过标志或默认值来确定该选项是否已设置?非常感谢提前!
答案 0 :(得分:2)
想出来:
parser := flags.NewParser(&opts, flags.Default)
o := parser.FindOptionByLongName("Port)
if o.IsSet() {}
Problme是IsSet()
如果在命令行上使用该标志,或者如果它是通过默认值设置的,则为真。
因此解决了引用IsSet()
的表面问题,但仍在寻找能够判断出现的问题,因为我希望标志默认显示在--help中。
答案 1 :(得分:0)
在这里也可以做新手。 IsSetDefault()
也可用。 (也许是因为您问并回答了问题而添加的。)