2

すべてのフラグ引数がコマンド ラインから設定されていることを確認するにはどうすればよいですか? 各フラグ名を具体的にチェックせずにこれを行い、代わりにすべてのフラグを動的にチェックしたいと思います。

これが私のコードですmain.go

package main

import (
    "fmt"
    "flag"
)

func main() {
    x := flag.String("x", "", "x flag")
    y := flag.String("y", "", "y flag")
    flag.Parse()
}

たとえば、次のように実行します。go run main.go -x hello

4

1 に答える 1

4

これは、関数を使用して実現できますVisitAll

VisitAll は、コマンドライン フラグを辞書順にアクセスし、それぞれに対して fn を呼び出します。設定されていないものも含め、すべてのフラグにアクセスします。

サンプルコード ( の後に追加flag.Parse()):

flag.VisitAll(func (f *flag.Flag) {
    if f.Value.String()=="" {
        fmt.Println(f.Name, "not set!")
    }
})
于 2017-07-17T16:02:10.547 に答える