いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-459 (flagパッケージ再入門)(06-NArgs)

関連記事

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のおすすめ書籍


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。