Go 的新手,有一个基本的概念问题(我认为)...
尝试使用 github.com/jessevdk/go-flags 并使其大部分正常工作。 --help 和诸如此类的东西工作正常,正在传递标志等。
我需要了解选项是通过标志设置的,还是通过使用提供的默认值的 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”引用该值,但我如何才能知道该选项是通过标志设置的还是默认设置的?非常感谢!
最佳答案
想通了:
解析器 := flags.NewParser(&opts, flags.Default)
o := parser.FindOptionByLongName("端口)
如果 o.IsSet() {}
问题是,如果在命令行上使用了该标志,或者如果它是通过默认设置设置的,则 IsSet()
为真。
因此解决了引用 IsSet()
的表面问题,但仍在寻找判断发生了什么的能力,因为我希望标志默认值显示在 --help 中。
关于go - 如何引用go-flag IsSet,需要功能代码示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41528341/