-4
-hまたは--helpフラグを定義していません。 次のコードでは、フラグ-h を使用しても、-hが定義されていないという事実は出力されません。 ...なぜですか?Golangフラグパッケージにはデフォルトフラグがありますか?
コード:
package main
import (
"flag"
"fmt"
)
func showHelp() {
fmt.Println(`
Usage: CLI Template [OPTIONS]
Options:
-h, --help Print the help log.
`)
}
// If user makes wrong usage of flags, trigger ShowHelp()
func validateFlag(flag *flag.FlagSet) {
flag.Usage = func() {
showHelp()
}
}
func main() {
// Check if the current flag is valid
validateFlag(flag.CommandLine)
// Parse the command-line flags
flag.Parse()
}
コマンド:
# I'm using makefile so
make all
bin/main -h
結果:フラグを設けなく定義されない:
-h結果予想Usage: CLI Template [OPTIONS]
Options:
-h, --help Print the help log.
flag provided but not defined: -h Usage: CLI Template [OPTIONS] Options: -h, --help Print the help log.
'flag.Usage'に割り当てる新しい関数を定義する代わりに、直接' showHelp'を 'flag.Usage = showHelp'のように割り当ててください –