Go でリスト値をフラグに解析する
Go では、Python の argparse に相当するのは flag パッケージです。組み込みのフラグ タイプは文字列、整数、およびブール値のみをサポートしますが、値のリストに対応するカスタム フラグ タイプを定義できます。
リストのカスタム フラグ タイプ
リスト値のカスタム フラグ タイプを定義するには、arrayFlags などの新しいタイプで flag.Value インターフェイスを実装します。 String() メソッドはリストの文字列表現を提供し、Set() メソッドはリストを新しい値で更新します。
カスタム フラグのバインド
カスタム フラグ タイプを定義している場合は、flag.Var() を使用してそれをフラグにバインドできます。これにより、実行時にそのフラグに複数の値を渡すことができます。
使用例
リストにカスタム フラグ タイプを使用する方法の例を次に示します。
package main import ( "flag" "fmt" ) type arrayFlags []string func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } func (i *arrayFlags) Set(value string) error { *i = append(*i, value) return nil } var myFlags arrayFlags func main() { flag.Var(&myFlags, "list1", "Some description for this param.") flag.Parse() fmt.Println(myFlags) // Prints [value1 value2] }
次のコマンドでこのコードを実行すると、リストの値が myFlags に解析されます。変数:
go run your_file.go --list1 value1 --list1 value2
以上がGoでリストの値をフラグに解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。