Goのフラグパッケージにデフォルト値を設定しないことは可能ですか? たとえば、flag パッケージでは、次の行を書き出すことができます。
filename := flag.String("file", "test.csv", "Filename to cope with")
上記のコードでは、必ずしもデフォルト値を設定する必要はありませんtest.csv
。この場合は、代わりに常にユーザーに独自のファイル名を指定させます。指定されていない場合は、エラーを発生させてプログラムを終了します。
私が思いついた方法の 1 つは、最初に のfilename
実行後に の値をチェックし、flag.Parse()
その値が である場合test.csv
、適切なエラー メッセージを表示してプログラムを終了させることです。ただし、回避できるのであれば、そのような冗長なコードは書きたくありません。また、回避できなくても、ここで問題に対処するためのより良い方法を聞きたいと思います。
ちなみに、Pythonのargparse
モジュールでそのような操作を行うことができます-できれば同様のことを実装したいだけです...
また、短い引数と長い引数の両方 (つまり、両方-f
と-file
引数?) を flag パッケージに実装できますか?
ありがとう。