Golang使用flag包解析命令行参数

如果只是简单地,查看和使用命令行的参数(没有使用-u user等指定参数),可以使用"os.Args"这个切片,里面就存放了命令行参数。

要想使用指定的命令行参数,用flag包中的StringVar和IntVar方法

package main

import (
	"fmt"
	"flag"
)

func main(){
	// 定义几个变量,用于接收命令行的参数值
	var (
		user, pwd, host string
		port int
	)

	// &user,用来接收命令行中输入的-u后面的参数
	// "u",就是-u指定参数
	// "",就是默认值
	// "用户名,默认为空",是对参数的说明
	flag.StringVar(&user, "u", "", "用户名,默认为空")
	flag.StringVar(&pwd, "pwd", "", "密码,默认为空")
	flag.StringVar(&host, "h", "localhost", "主机名,默认为localhost")
	flag.IntVar(&port, "p", 3306, "端口号,默认为3306")

	// 转换
	flag.Parse()
	// 输出结果
	fmt.Printf("user=%v pwd=%v host=%v port=%v
", 
				user, pwd, host, port)
}

结果:



我用的Windows power shell,所以默认不会从当前位置加载命令,所以我用./main.exe来指定路径

原文地址:https://www.cnblogs.com/pangqianjin/p/14403245.html