package flag

33 阅读1分钟

flag包实现了命令行参数的解析。

func (*FlagSet) StringVar

func (*FlagSet) Parse

image.png

image.png

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
}