001_flag包详解

go语言提供的flag包可以解析命令行的参数,而且使用起来非常的方便。 先看一个小例子:test.go

package main

import (
	"flag"
	"fmt"
)

var bFlag = flag.Bool("b", false, "If show message")

func main() {
	//第一个参数,为参数名称,第二个参数为默认值,第三个参数是说明
	name := flag.String("name", "Watson", "Input your name.")
	age := flag.Int("age", 0, "Input your age.")
	flag.Parse()

	if !*bFlag {
		fmt.Println("Mr. Watson, Come Here, I Want You!")
	} else {
		fmt.Println("Hello, ", *name, "   age:", *age)
	}

}

运行结果: Mr. Watson, Come Here, I Want You!

添加执行参数:-b=true -name=arun -age=28

运行结果: Hello,  arun    age: 28

几点注意事项:

1,通过flag.String(), flag.Bool, flag.Int(),flag.IntVar()等方式来定义命令行中需要使用的flag。

2,在定义完flag后,通过调用flag.Parse()来进行对命令行参数的解析。

3,命令行参数的格式可以是:

-flag xxx (使用空格,一个 - 符号)
--flag xxx (使用空格,两个 - 符号)
-flag=xxx (使用等号,一个 - 符号)
--flag=xxx (使用等号,两个 - 符号)

4,命令行后面直接跟-help 、--help 或者是输入错误的参数就会把帮助文档显示出来,以上面的程序为例。 

Usage of /private/var/folders/wy/v0w9vkf52836x21w_jz2wzlh0000gn/T/___test:
  -age int
    	Input your age.
  -b	If show message
  -name string
    	Input your name. (default "Watson")

  

 

posted @ 2017-11-18 18:25  arun_python  阅读(663)  评论(0)    收藏  举报