问题标签 [go-flag]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 在命令行解析中引发自定义错误
我正在使用标志模块来解析我的标志,但希望至少有一个位置参数。当没有足够的位置参数时,如何显示使用帮助,就像在 python 中那样parser.error
?
目前,我正在手动调用os.Exit
,但是对于应该是一个简单的错误来说,这感觉真的很麻烦:
testing - 在 go test 中处理命令行参数
有没有办法在“测试”中获取命令行参数,
当你调用go test
显然你main
没有运行时,有没有办法处理命令行参数,
一种方法是使用flags
包并检查每个测试或正在测试的函数中的命令行参数,但这并不理想,因为您需要在很多地方执行此操作,这与您只是在main
当您运行应用程序时。
有人可能会认为这是错误的做法,并且违反了单元测试的纯洁性:
- 并非所有测试都是单元测试
- 不依赖“ENV”变量并实际在命令行中将这些东西作为参数传递是非常有用的,
作为记录,我最终init()
在我的一个文件中放置了一个函数_test
,并设置了在以这种方式调用 main 时通过标志设置的变量。
go - 在 GoLang 中定义独立的标志集
Go 文档(http://golang.org/pkg/flag/)说:
FlagSet 类型允许定义独立的标志集,例如在命令行界面中实现子命令。
我需要这个功能,但我不知道如何说服标志 pkg 这样做。当我定义两个 FlagSet 时,如果命令行具有用于第二个的标志,则解析其中一个会给我错误和警告。例子:
cmd -apply
如果我尝试执行OR ,我会收到各种警告cmd -reset
。我想将这些 FlagSet 分开,因为我只想-silent
为-apply
.
我错过了什么?
go - 如何引用go-flag IsSet,需要功能代码示例
新手,并且有一个基本的概念问题(我认为)......
尝试使用 github.com/jessevdk/go-flags 并让它大部分工作。--help 和诸如此类的工作正常,正在传递标志等。
我需要了解选项是通过标志还是通过使用提供的默认值的 go-flags 解析器设置的。似乎 go-flags 有一个“IsSet”功能,但我不知道如何引用它。假设:
我可以通过“opts.Port”引用该值,但是如何确定该选项是通过标志还是默认设置的?提前谢谢了!
go - 全局 go-flag AddCommand 说明和/或示例
在我学习 Go 并尝试使用 package 的早期阶段github.com/jessevdk/go-flags
。我检查了另一个线程中引用的 Fly 示例go-flags
,但它显然没有使用AddCommand
(至少根据我的 grep)。
godoc 文章建议定义一个全局解析器实例,并在单独的文件中实现每个命令。这些命令文件中的每一个都应该定义一个 go init 函数,该函数在全局解析器上调用 AddCommand。
使我的解析器全球化很容易。对init()
设置感到困惑:
1)我的理解是init()
订单执行是随机的,除了你的 main 的 init 最后运行。
2) 如果是这样,我无法确保NewParser()
在我的 AddCommand() 调用之前调用了我的配置代码中的调用。
3) 我的代码可以编译,但是 --help 没有显示任何已定义的命令,这让我认为确实,在
/* 只是猜测 */AddCommand()
之前调用了NewParser()
4) QED 我很困惑!
有人有推荐的例子我可以学习吗?
go - 检查是否设置了所有标志(没有标志空白)
如何确保从命令行设置每个标志参数?我想在不专门检查每个标志名称的情况下执行此操作,而是希望动态检查所有标志。
这是我的代码,main.go
:
例如,我像这样运行它:go run main.go -x hello
go - Golang flag:忽略丢失的标志并解析多个重复的标志
我是 Golang 的新手,我一直无法使用 flag 找到解决此问题的方法。
如何使用标志,以便我的程序可以处理这样的调用,其中 -term 标志可能出现可变次数,包括 0 次:
go - 如何仅在 go-flag 包中显示当前设置?
我有一个项目使用包标志来读取 argv(参数),当没有给出参数时它会打印默认设置:
执行结果如下:
但是当我的代码包含其他包时glog
,该PrintDefaults
函数将显示更多设置,包括glog
标志:
我需要的唯一两个设置是-F
和-V
,如何删除其他设置?
go - value returned by flags into my struct
How can I assign the string value returned by flag into my struct? I have the following code.
Database is a string