flag包实现了命令行参数的解析。
func (*FlagSet) StringVar
func (*FlagSet) Parse
package main
import (
"flag"
"fmt"
)
func main() {
//定义几个变量,用于接收命令行的参数值
var user string
var pwd string
var host string
var port int
//&user 就是接收用户命令行中输入的 -u后面的参数值
//"u" 就是 -u 指定参数
//"" 默认值
//"用户名,默认为空" 说明
flag.StringVar(&user, "u", "", "用户名,默认为空")
flag.StringVar(&pwd, "pwd", "", "密码,默认为空")
flag.StringVar(&host, "h", "localhost", "主机名,默认为localhost")
flag.IntVar(&port, "port", 3306, "端口号,默认为空")
//这里有一个非常重要的操作,转换,必须调用该方法
flag.Parse()
fmt.Printf("user=%v,pwd=%v,host=%v,port=%v", user, pwd, host, port)
//注意别把这个//也复制了
//go build -o test.exe main.go
//test.exe -u root -pwd 123456 -h 127.0.0.5 -port 8080
//test.exe -pwd 123456 -h 127.0.0.5 -port 8080 -u tomjack
// test.exe -pwd 123456 -h 127.0.0.5 -u tomjack
}