go自带flag库
可以支持三种方式,字符串,整数,布尔值,使用过程主要两个步骤,先声明,声明完后调用flag.Parse()
如下:
package main
import (
"fmt"
"runtime"
)
func main() {
wordPtr := flag.String("word", "food", "is string")
numPtr := flag.Int("num", 42, "is int")
boolPtr := flag.Bool("fork", false, "is bool")
var svar string
flag.StringVar(&svar, "svar", "bar", "a string var")
flag.Parse()
fmt.Println("word:", *wordPtr)
fmt.Println("numb:", *numbPtr)
fmt.Println("fork:", *boolPtr)
fmt.Println("svar:", svar)
fmt.Println("tail:", flag.Args())
}
flag.String("word", "food", "is string")
声明一个参数word,默认值为food,提示语是is string
var svar String
flag.StringVar(&svar, "svar", "bar", "is string var")
svar是已声明的变量,默认值是bar,提示语是is string var
flag返回值是一个指针,所以需要用*ptr
来获取实际的值
flag.Args()
存放了所有没有声明的命令行参数