flag

最后更新于:2022-04-02 02:43:44

[TOC] ## 实例 ### 默认带 --help 查询 ``` var ( s string ) func main() { flag.StringVar(&s,"name", "cc", "input you name") flag.Parse() fmt.Printf("%+v\n", s) } ``` 运行 ``` > go run main.go --help -name string input you name (default "cc") > go run main.go --name cpj //只能用 --name, -name无效 cpj ``` ### 主动打印 help 信息 ``` var ( help bool file string number int ) func init() { flag.BoolVar(&help, "h", false, "this is help") // `file` 写在最后的注释中,可使 -f string 改为 -f file flag.StringVar(&file, "f", "", "this is a `file`") flag.IntVar(&number, "n", 0, "tshi is a `number`") flag.Usage = usage } func main() { flag.Parse() if file != "" { log.Println("file is ", file) lookup := flag.Lookup("f") // 打印参数的数据 fmt.Printf("%+v\n", lookup) //&{Name:f Usage:this is a `file` Value:test.file DefValue:} } if number != 0 { log.Println("number is", number) } fmt.Println(flag.Args()) if help { //主动打印信息 flag.Usage() } } func usage() { fmt.Fprintf(os.Stdout, `test version: test/1.10.0 Usage: test [-hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] Options: `) flag.PrintDefaults() } ``` output ``` Usage: test [-hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] Options: -f file this is a file -h this is help -n number tshi is a number ```
';