Golang 提供了内置的 flag 包来进行命令行解析。flag 包可以解析命令行参数,并将其转换为对应的变量值。
以下是一个简单的示例:
package main
import (
"flag"
"fmt"
)
func main() {
var name string
var age int
var married bool
flag.StringVar(&name, "name", "", "姓名,默认为空")
flag.IntVar(&age, "age", 0, "年龄,默认为 0")
flag.BoolVar(&married, "married", false, "婚姻状况,默认为 false")
flag.Parse()
fmt.Printf("姓名:%s\n", name)
fmt.Printf("年龄:%d\n", age)
fmt.Printf("婚姻状况:%t\n", married)
}
在上面的示例中,首先定义了三个变量 name
、age
、married
。然后使用 flag.StringVar()
、flag.IntVar()
、flag.BoolVar()
函数将这三个变量与命令行参数绑定起来。其中第一个参数表示绑定的变量地址,第二个参数表示命令行参数的名称,第三个参数表示命令行参数的默认值,第四个参数表示命令行参数的说明文本。
最后使用 flag.Parse()
解析命令行参数,然后输出相应的结果。运行程序时可以通过命令行参数来修改这三个变量的值,例如:
./example -name=Alice -age=20 -married=true
输出结果为:
姓名:Alice
年龄:20
婚姻状况:true
除了以上示例中介绍的函数外,flag 包还提供了一些其他的函数,例如 flag.ParseInt()
、flag.ParseBool()
等。更多详细信息可以查看官方文档。