os.Args

获取命令行参数

func main() {
    for k, v := range os.Args {
        fmt.Printf("k:%v; 值:%v \n", k, v)
    }
}

编译之后运行 build main.go a b c

k:0;:./main 
k:1;:a 
k:2;:b 
k:3;:c 

flag

flag包实现了命令行参数的解析。

func main() {
    //定义命令行参数方式1
    var name string
    var age int
    var married bool
    var delay time.Duration
    flag.StringVar(&name, "name", "张三", "姓名")
    flag.IntVar(&age, "age", 18, "年龄")
    flag.BoolVar(&married, "married", false, "婚否")
    flag.DurationVar(&delay, "d", 0, "延迟的时间间隔")

    //解析命令行参数
    flag.Parse()
    fmt.Println(name, age, married, delay)
    //返回命令行参数后的其他参数
    fmt.Println(flag.Args())
    //返回命令行参数后的其他参数个数
    fmt.Println(flag.NArg())
    //返回使用的命令行参数个数
    fmt.Println(flag.NFlag())
}

查看命令行参数go run main.go -hlep

运行 go run main.go -name 胖虎 -age 18:

胖虎 18 false 0s
[]
0