Golang でフラグとして値のリストを取得する
Golang では、標準のフラグ パッケージにより、コマンドからフラグを解析する機能が提供されます。行ですが、本質的には文字列、整数、ブール値などのプリミティブ型のみをサポートします。値のリストをフラグとして処理するには、カスタムの flag.Value 型を実装し、それをバインドするために flag.Var() を利用できます。
実装例は以下で入手できます:
import ( "flag" "fmt" ) type arrayFlags []string // String is a required implementation of the flag.Value interface func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } // Set is another required implementation of 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 parameter.") flag.Parse() }
このカスタム フラグ タイプは、次のような複数のフラグ値を渡すために使用できます。
go run your_file.go --list1 value1 --list1 value2
要約すると、カスタム flag.Value タイプを実装し、 flag.Var() を使用すると、開発者は値のリストをフラグとして解析できるため、コマンドライン引数の処理がより柔軟になります。
以上がGolang で値のリストをフラグとして解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。