2017-01-08 30 views
2

新去的,并具有基本的概念性的问题(我认为)...如何引用去旗IsSet,功能的代码示例需要

尝试使用github.com/jessevdk/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”引用该值,但是如何查看该选项是通过标志还是默认值设置的?提前谢谢了!

回答

2

想通了这一点:

parser := flags.NewParser(&opts, flags.Default) o := parser.FindOptionByLongName("Port) if o.IsSet() {}

Problme是,如果在命令行中使用了标志IsSet()为真,或者如果它是通过默认设置。

因此解决了引用IsSet()的表面问题,但仍然在寻找能够分辨出现的问题,因为我希望标记默认显示为--help。