是否可以不在Go的标志包中设置默认值?例如,在flag package中,您可以写出以下行:
filename := flag.String("file", "test.csv", "Filename to cope with")
在上面的代码中,我不一定要设置默认值(在本例中是test.csv
),而是总是让用户指定他们自己的文件名,如果没有指定,那么我想导致错误并退出程序.
我想到的一个方法是,在执行flag.Parse()
之后,我首先判断filename
的值,如果该值是test.csv
,那么程序将退出,并显示相应的错误消息.然而,如果可以避免的话,我不想编写这样的冗余代码——即使不能,我也希望听到更好的方法来处理这个问题.
顺便说一下,您可以在Pythonargparse
模块中执行这些操作--如果可以的话,我只想实现类似的操作……
另外,我是否可以同时实现短参数和长参数(换句话说,同时实现-f
和-file
参数?)在旗帜包裹里吗?
谢谢.