Go的命令行参数

使用os.Args获得参数

os.Args是一个string的切片,用来存储所有的命令参数

func GetArgs() {

	fmt.Println("命令行参数:", len(os.Args))

	for i, v := range os.Args {
		fmt.Printf("args[%v] = %v", i, v)
		
	}
}

可如下获取参数
参数获取1

使用flag包解析命令行参数

前面的方式是比较原生的方式,对解析参数不是特别的方便,特别是带有指定参数形式的命令行。

为获得可以指定参数的命令行参数可以使用flag包

具体代码

func GetArgsByFlag() {

	var user string
	var password string
	var host string
	var port int

	// &user:保存命令行中输入 -u 后面的参数值
	// "u" : 指定参数: -u
	// "root" : 默认值
	// "用户名,默认为root" : 说明
	flag.StringVar(&user, "u", "root", "用户名,默认为root")
	flag.StringVar(&password, "P", "123456", "密码,默认为123456")
	flag.StringVar(&host, "h", "localhost", "主机名,默认本机")
	flag.IntVar(&port, "p", 3306, "端口号,默认是3306")

	// 这里有一个非常中的操作,转换,必须调用该方法
	flag.Parse()

	fmt.Printf("user = %v 
", user)
	fmt.Printf("password = %v 
", password)
	fmt.Printf("host = %v 
", host)
	fmt.Printf("port = %v 
", port)
}

可如下获取参数
参数获取1

原文地址:https://www.cnblogs.com/lxlhelloworld/p/14286048.html