flag包是用来解析启动程序时传入的参数的。

    1. package main
    2. import (
    3. "flag"
    4. "fmt"
    5. )
    6. var c = flag.String("c", "continue", "command of c")
    7. func main() {
    8. flag.Parse()
    9. fmt.Println(*c)
    10. }
    11. //命令行
    12. go run ./cmd/request.go -c control
    13. 打印:control

    第一参数指定参数名叫什么;第二个参数是启动程序是没有指定参数时设置成这个值;第三个参数是描述这个参数的,运行-help时显示出来;返回值是一个指向参数内容的指针(获取内容时记得带上*)。

    要在执行完flag.Parse()这个函数,命令参数才能解析出来,不然访问变量只会得到默认值。

    除了flag.Int()这个函数,还有其他与基本类型对于的函数,如与string对应的flag.String()、与uint64对应的flag.Uint64()等等。参数和上面的flag.Int()是一样的,只不过是类型不同罢了。