関連記事
Goメモ-454 (flagパッケージ再入門)(01-FlagSet) - いろいろ備忘録日記
Goメモ-455 (flagパッケージ再入門)(02-Var) - いろいろ備忘録日記
Goメモ-456 (flagパッケージ再入門)(03-Duration) - いろいろ備忘録日記
Goメモ-457 (flagパッケージ再入門)(04-Func) - いろいろ備忘録日記
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
最近、flaggy とかを利用していて、あまりflagパッケージを触らなくなってきているのですが
小さなツールをちゃちゃっとワンタイムで利用するときは、やっぱり使ったりします。
使っていないと忘れてしまいそうなので、ここに自分の備忘録として残しておこうと思います。
今回は、flag.NFlag()などの解析済みフラグの数などの取得について。
- flag.NFlag() は、処理したフラグの数
- flag.NArg() は、処理していない引数の数
- flag.Arg(i) は、処理していない引数のN番目を取得
- flag.Args() は、処理していない引数リストを取得
となります。
サンプル
package flags import ( "flag" "github.com/devlights/gomy/output" ) // Nargs は、flag.Arg(), flag.Args(), flag.NArg(), flag.NFlag() のサンプルです. // // - flag.NFlag() は、処理したフラグの数 // - flag.NArg() は、処理していない引数の数 // - flag.Arg(i) は、処理していない引数のN番目を取得 // - flag.Args() は、処理していない引数リストを取得 // // # REFERENCES // - https://pkg.go.dev/flag@go1.22.4#Arg // - https://pkg.go.dev/flag@go1.22.4#Args // - https://pkg.go.dev/flag@go1.22.4#NArg // - https://pkg.go.dev/flag@go1.22.4#NFlag func Nargs() error { var ( fs = flag.NewFlagSet("", flag.ContinueOnError) _ = fs.Int("i", 0, "int value") _ = fs.String("s", "", "string value") ) fs.Parse([]string{"-i", "100", "-s", "hello", "out.txt", "out2.txt"}) output.Stdoutl("[NFlag][処理したフラグの数 ]", fs.NFlag()) output.Stdoutl("[NArg ][処理していない引数の数]", fs.NArg()) for i := range fs.NArg() { output.Stdoutl("[Arg ]", fs.Arg(i)) } output.Stdoutl("[Args ]", fs.Args()) return nil }
参考情報
Goメモ-428 (flaggyメモ)(01) - いろいろ備忘録日記
Goメモ-429 (flaggyメモ)(02) - いろいろ備忘録日記
Goメモ-430 (flaggyメモ)(03) - いろいろ備忘録日記
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。