是否可以不在 Go 的标志包中设置默认值?例如,在 flag 包中,您可以写出以下行:
filename := flag.String("file", "test.csv", "Filename to cope with")
在上面的代码中,我不想设置默认值,test.csv
在这种情况下,而是总是让用户指定他们自己的文件名,如果没有指定,那么我想导致错误并退出程序。
我想出的一种方法是我首先检查filename
after doing的值flag.Parse()
,如果该值是,test.csv
那么我让程序退出并显示适当的错误消息。但是,如果可以避免,我不想编写这样的冗余代码 - 即使它不能,我想在这里听到任何更好的方法来解决这个问题。
顺便说一句,您可以在 Python 的argparse
模块中执行此类操作-如果可以的话,我只想实现类似的事情...
另外,我可以在标志包中同时实现短参数和长参数(换句话说,同时实现-f
参数吗?)?-file
谢谢。