package main
import (
"flag"
"fmt"
//"os"
//"path/filepath"
)
func main() {
//定义几个变量,用于接受命令行的值
var user string
var pwd string
var host string
var port int
//比较重要的方法
//func IntVar(p *int,name string,value int,usage string)
// intvar用指定的名称(即name),默认值(即value),使用信息注册一个int类型的flag,
// 并将flag的值保存到p指向的变量中。
//例如,-u root -pwd 12345 -h localhost -p 3306
//其中-u就是name,p就是pwd,user之类的。
flag.StringVar(&user, "u", "", "用户名默认为空")
flag.StringVar(&pwd, "pwd", "", "用户名默认为空")
flag.StringVar(&host, "h", "", "用户名默认为空")
flag.IntVar(&port, "port", 3306, "用户名默认为空")
//这里有一个非常重要的操作,转换必须调用该方法
//func Parse(),从os.Args[1:]中解析注册的flag,必须在所有的flag都注册好而未访问其值时执行。
flag.Parse()
fmt.Printf("user=%v pwd=%v host=%v port=%v", user, pwd, host, port)
}
go build -o test2.go main.go
使用go build的时候,test2.go是指定的编译后的名字,main.go是被编译的文件的名字。
test2.go -pwd 123 -u me -port 3307
上面是输入,下面是输出。
user=me pwd=123 host= port=3307