【发布时间】:2013-08-28 02:05:31
【问题描述】:
Go 中的 flag 包可以不设置默认值吗?例如,在 flag 包中可以写出以下行:
filename := flag.String("file", "test.csv", "Filename to cope with")
在上面的代码中,我不想设置默认值,在这种情况下是test.csv,而是总是让用户指定他们自己的文件名,如果没有指定,那么我想引起错误并退出程序。
我想出的一种方法是在执行flag.Parse() 之后首先检查filename 的值,如果该值是test.csv,那么我会让程序退出并显示相应的错误消息。但是,如果可以避免,我不想编写这样的冗余代码 - 即使它不能,我想在这里听到任何更好的方法来解决这个问题。
顺便说一句,您可以在 Python 的 argparse 模块中执行这些操作 - 如果可以的话,我只想实现类似的事情......
另外,我可以在标志包中同时实现短参数和长参数(换句话说,-f 和 -file 参数?)?
谢谢。
【问题讨论】:
-
每个问题只问一个问题。
标签: go command-line-arguments flags