时间:2021.05.13
环境:Windows
目的:通过flag包获取及解析命令行传递的参数
说明:
作者:Zhong QQ交流群:121160124 欢迎加入!
flag使用起来很简单 如下:
- 导入flag包
- import ("flag")
- 定义变量用于接收参数
- var host string
- 获取参数 映射到变量host
- flag.StringVar(&host, "h", "127.0.0.1", "主机地址")
- 说明:第一个参数是赋值到指定变量 第二个参数为命令行指定参数时的标识如-h 第三个参数为默认值 第四个参数为说明
- 解析参数
-
flag.Parse()
-
- 使用参数
-
fmt.Printf("%v type:%T\n", username, username) fmt.Printf("%v type:%T\n", passwd, passwd) fmt.Printf("%v type:%T\n", ip, ip) fmt.Printf("%v type:%T\n", port, port)
-
在运行程序时传递参数即可
go run main.go -u ChenYixun -p buzhidao -ip 127.0.0.1
package main
import (
"fmt"
"flag"
)
func main() {
var username,passwd,ip string
var port int
flag.StringVar(&username, "u", "", "username") //获取string类型参数
flag.StringVar(&passwd, "p", "", "password")
flag.StringVar(&ip, "ip", "localhost", "ip地址")
flag.IntVar(&port, "port", 8000, "port") //获取int类型参数
//解析参数
flag.Parse()
fmt.Printf("%v type:%T\n", username, username)
fmt.Printf("%v type:%T\n", passwd, passwd)
fmt.Printf("%v type:%T\n", ip, ip)
fmt.Printf("%v type:%T\n", port, port)
}
关注微信公众号