通过 flag 包获取命令行参数

优质
小牛编辑
145浏览
2023-12-01

Go 语言中除了可以通过 os 包获取命令行参数以外,还可以通过 flag 包获取命令行参数

package main
import (
	"flag"
	"fmt"
)
func main() {
	/*
    flag.Xxxx(name, value, usage)
	第一个参数: 命令行参数名称
	第二个参数: 命令行参数对应的默认值
	第三个参数: 命令行参数对应的说明
	*/
	// 1.设置命令行参数
	name := flag.String("name", "lnj", "请输入人的姓名")
	age := flag.Int("age", 33, "请输入人的年龄")
	// 2.将命令行参数解析到注册的参数
	flag.Parse()
	// 3.使用命令行参数
	// 注意flag对应方法返回的都是指针类型, 所以使用时必须通过指针访问
	fmt.Println("name = ", *name)
	fmt.Println("age = ", *age)
}

flag 获取命令行参数第二种写法

package main
import (
	"flag"
	"fmt"
)
func main() {
	/*
	flag.Xxxx(*type, name, value, usage)
	第一个参数:保存命令行参数变量地址
	第二个参数: 命令行参数名称
	第三个参数: 命令行参数对应的默认值
	第四个参数: 命令行参数对应的说明
	*/
	// 1.定义变量,保存命令行参数的值
	var name string
	var age int
	// 2.设置命令行参数
	flag.StringVar(&name, "name", "lnj", "请输入人的姓名")
	flag.IntVar(&age, "age", 33,"请输入人的姓名")
	// 3.注册解析命令行参数
	flag.Parse()
	// 4.使用命令行参数
	fmt.Println("name = ", name)
	fmt.Println("age = ", age)
}