Golang のリスト用カスタム フラグ
Golang のフラグ パッケージを使用すると引数を簡単に解析できますが、通常は文字列、整数、またはブール値。これは、値のリストを操作する場合に制限があるように思えるかもしれません。
Golang では、flag.Value インターフェイスを実装することでカスタム フラグを作成できます。このインターフェイスには、String() と Set() という 2 つのメソッドの実装が必要です。リストのカスタム フラグを定義すると、コマンドライン フラグを介して渡される複数の値の解析を有効にできます。
カスタム リスト フラグの定義
次の例を考えてみましょう。 :
package main import "flag" import "fmt" type arrayFlags []string // String() implements the flag.Value interface func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } // Set() implements the flag.Value interface 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) }
これは、複数の値を受け入れる arrayFlags と呼ばれるカスタム フラグ タイプを定義します。フラグは「list1」フラグ名にバインドされており、flag.Parse() を使用して解析できます。
使用法
このカスタム フラグを使用して複数の値を渡すには、次のようにします。次のようにプログラムを実行できます:
go run your_file.go --list1 value1 --list1 value2 --list1 value3
これにより、myFlags 変数に指定された 3 つの値 ["value1"、"value2"、"value3"] が設定されます。その後、プログラム内でこれらの値にアクセスできます。
Playground
実際の例としては、次のプレイグラウンドにアクセスできます: [playground link]
以上がGolang でカスタム フラグを使用して複数の値を解析してリストにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。