如何使用 Golang 中的标志包指定位置参数?

有时我想在命令行上传递一个没有名称的参数,比如像这样的命令wc,它需要一个文件名作为输入:

wc filename.txt

使用flag package,看起来每个标志都必须有一个名称,如果未指定则使用默认值。

filename := flag.String("filename", "foo.txt", "Which file to count the words for")

但是,我不想要默认值,如果未指定参数,我希望程序以错误代码退出。我如何向 Go 二进制文件添加必需的参数?

我还希望能够解析带有类型信息的参数,因此仅直接检查 Args() 并不能完全做到。


茅侃侃
浏览 246回答 2
2回答

白衣染霜花

您还可以使用 flag.Narg() 函数来确保您拥有所需数量的位置参数,尽管我不知道它通过 len(flag.Args()) 为您提供了什么if&nbsp;flag.NArg()&nbsp;<&nbsp;minArgs&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;something &nbsp;&nbsp;&nbsp;&nbsp;...}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go