Golang でリスト引数を処理するためのカスタム フラグ タイプを定義する方法
Python の argparse モジュールは、値の数を指定する nargs 引数を提供します。リストを扱うときに解析されます。 Golang のフラグ パッケージは、基本的な型をサポートしていますが、リストを受け入れる直接的な方法を提供しません。この問題に対処するために独自のフラグ タイプを定義する方法は次のとおりです:
カスタム配列フラグ タイプの作成:
Golang プログラムは、フラグを実装することで独自のフラグ タイプを作成できます。 .Value インターフェイス。次のコードは、文字列の配列を処理する arrayFlags タイプを定義します。
type arrayFlags []string // String implements the flag.Value interface to convert the flag value to a string func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } // Set implements the flag.Value interface to update the flag value when a new argument is provided func (i *arrayFlags) Set(value string) error { *i = append(*i, value) return nil }
カスタム フラグ タイプの利用:
カスタム配列フラグ タイプを使用するには、次のことができます。 flag.Var() 関数を使用します。以下に例を示します:
var myFlags arrayFlags func main() { flag.Var(&myFlags, "list1", "Some description for this param.") flag.Parse() }
複数のフラグの解析:
次のように複数のフラグを渡すことができます:
go run your_file.go --list1 value1 --list1 value2
myFlags 変数は次のようになります。これで list1 フラグに渡された値が含まれ、値のリストにアクセスできるようになります。
以上がGolang でリスト引数を処理するカスタム フラグ タイプを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。