Go语言提供了一个标准库flag来解析命令行参数。
flag包定义了三种类型的命令行参数:布尔型(bool)、字符串型(string)和整型(int)。flag包中定义的函数有:
· BoolVar:用于定义一个布尔型的命令行参数,并将其值赋给指定的变量;
· StringVar:用于定义一个字符串型的命令行参数,并将其值赋给指定的变量;
· IntVar:用于定义一个整型的命令行参数,并将其值赋给指定的变量;
· Parse:用于解析命令行参数;
下面是一个例子:
package main
import (
"flag"
"fmt"
)
func main() {
var name string
var age int
var married bool
flag.StringVar(&name, "name", "张三", "姓名,默认为张三")
flag.IntVar(&age, "age", 18, "年龄,默认为18")
flag.BoolVar(&married, "married", false, "婚否,默认为false")
flag.Parse()
fmt.Println(name, age, married)
}
上面的代码中,我们通过flag包定义了三个命令行参数:-name、-age和-married。其中,-name和-married是字符串型和布尔型的参数,需要使用StringVar和BoolVar函数进行定义;而-age是整型参数,需要使用IntVar函数。
在定义命令行参数后,我们调用flag.Parse()函数来解析命令行参数。在解析完成后,我们可以通过定义的变量来获取相应的命令行参数值。
如果运行上面的代码,并输入以下命令:
./main -name=lisi -age=20 -married=true
那么输出结果为:
lisi 20 true
可以看到,程序成功解析了命令行参数,并将其赋值给了对应的变量。




