こんにちは、山田ハヤオです。
今日は千代田桃と史乃沙優希の誕生日です。めでたいね。
そんなことは関係なく、Golangで非常に便利なpflagの話です。
前提
spf13/pflagは引数解析をするためのライブラリです。
標準のflagパッケージは
元コード
pflagを使った、かんたんなコードです。
文字列が必要な–optionAと引数を取らないflagAがあります。
小文字対応させる
ここで、flagAやoptionAをflagaやoptionaのように小文字にするとどうなるでしょうか。
不正な引数として扱われます。
そこで「正規化」する関数を実装して対処します。
pflagパッケージではフラグのセットをFlagSetという構造体で管理しています。
新たにFlagSetを定義してもいいですが、実は既にデフォルトで用意されています。
pglag.CommandLineはデフォルトのFlagSetです。
FlagSetに定義されているメソッドにSetNormalizeFunc
があります。
これはフラグの正規化を行う関数を定義するもので、今回は引数を全て小文字化しています。
また、特定のフラグを書き換えることでエイリアスのような使い方も可能です。
コメント